2011-06-07 125 views
0

我是新来jsf 2.0和春天3.0,我有一个要求在jsf 2.0中使用自定义转换器。但它不被识别,当我访问我的xhtml页面时显示异常 “命名对象未找到”。我曾用@FacesConverter注释自定义转换器,它是用在H:selectOneMenu.But我得到error.could在这个任意一个帮助...jsf自定义转换器

@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> 

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

+0

请在调用转换器的地方添加'h:selectOneMenu'。 – 2011-06-07 07:56:08

+0

嗨,我用h更新我的代码:selectOneMenu – 2011-06-07 08:04:40

回答

2

如果您想通过其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") 
+0

上面粘贴的代码与jsf 2.0 ejb和jpa一起工作,但它不能与jsf和spring集成。我会改变什么..? – 2011-06-07 08:32:18

+0

你是否在'value'属性中使用'@ FacesConverter'注解?在您的服务器日志中,必须有与您的错误相关的异常。您可以将例外发布为答案的补充。 – 2011-06-08 06:17:03