【问题标题】:jsf custom converterjsf自定义转换器
【发布时间】:2011-06-07 07:23:58
【问题描述】:

我是 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>

谢谢大家......

【问题讨论】:

  • 请在您调用转换器的地方添加h:selectOneMenu
  • 嗨,我用 h:selectOneMenu 更新了我的代码

标签: spring jsf jsf-2


【解决方案1】:

如果你想通过转换器ID调用转换器,你需要改变你的代码如下:

<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")

【讨论】:

  • 我上面粘贴的代码适用于 jsf 2.0 ejb 和 jpa 。但它不适用于 jsf 和 spring 集成。我会改变什么..??
  • 您是否将@FacesConverter 注释与value 属性一起使用?在您的服务器日志中,必须有与您的错误相关的异常。您可以将例外发布为您答案的补充。
猜你喜欢
  • 2012-03-15
  • 2012-12-16
  • 2012-10-26
  • 2013-10-11
  • 2012-07-21
  • 1970-01-01
  • 2015-01-18
  • 2012-10-17
  • 2011-12-21
相关资源
最近更新 更多