jsf自定义转换器

时间:2011-06-07 07:23:59

标签: spring jsf jsf-2

我是jsf 2.0和spring 3.0的新手,我需要在jsf 2.0中使用自定义转换器。但是当我访问我的xhtml页面时它显示异常时无法识别 “找不到命名的对象”。我使用了@FacesConverter注释用于自定义转换器,它在h:selectOneMenu中使用。但是我得到了错误。在这个任何一个帮助...

@FacesConverter("selectItemsConverter")
public class SelectItemsConverter implements Converter {
public Object getAsObject(FacesContext context, UIComponent component, String value) {

}
public String getAsString(FacesContext context, UIComponent component, Object value) {

}

}

h:selectOne菜单代码如下:

<h:selectOneMenu style="width:100px;height:24px;" rendered ="#{row.edit}" value="#{row.modelo.country}" converter="selectItemsConverter" required="true" requiredMessage="#{msg['veci.admin.ccaa.pais.empty']}">
<f:selectItems value="#{communityView.countries}" var="con" itemLabel="#{con.nombrePais}"/>
</h:selectOneMenu>

谢谢大家.............

1 个答案:

答案 0 :(得分:3)

如果您想通过其converterID调用转换器,则需要按如下方式更改代码:

<h:selectOneMenu style="width:100px;height:24px;" 
                 rendered ="#{row.edit}" 
                 value="#{row.modelo.country}" 
                 required="true" 
                 requiredMessage="#{msg['veci.admin.ccaa.pais.empty']}">
    <f:converter converterId="selectItemsConverter"/>
    <f:selectItems .../>
</h:selectOneMenu>

h:selectOneMenu的转换器属性需要一个完全限定的类名,例如:

<h:inputText
    converter="javax.faces.convert.IntegerConverter" />

如果您想为转换器提供自定义ID,请使用value参数:

@FacesConverter(value="selectItemsConverter")