【发布时间】:2015-05-05 17:46:14
【问题描述】:
我相信我的接线正确,但转换器仍然无法在我的xhtml 中被识别,我有以下代码:
<p:selectOneMenu ... value="#{myBean.myObject}" converter="myConverter">
...
</p:selectOneMenu>
其中myConverter 是我用来对myObject 对象(下面的MyType 类型的实例)执行Object - String 和String - Object 转换的转换器。
这是myConverter 代码的相关部分:
@FacesConverter (value="myConverter", forClass = MyType.class)
public class MyConverter implements Converter {
...
}
尽管进行了上述配置,但我得到了错误:
javax.faces.FacesException:表达式错误:命名对象:myConverter not 找到了
我提到了similar question(缺少上面的配置),它通过修改faces-config.xml 提出了一个替代方案,但我认为上面的配置也应该很好用?无论如何,我也尝试了 xml 方法 - 这是配置的相关部分:
<faces-config ...>
<converter>
<converter-id>myConverter</converter-id>
<converter-class>myPackage.MyConverter</converter-class>
</converter>
</faces-config>
配置真的有什么问题吗?我看到示例 here 做同样的事情!
编辑: 好的,stacktrace 揭示了一些更有用的信息:
javax.faces.FacesException: Expression Error: Named Object: myConverter not found.
我在转换器名称(转换器 ID)后看到多余的空格;我试图在远程调试期间修改它的值以删除最后的空格,它找到了我的转换器(虽然后来我遇到了 NPE,但我想我可以接受它)!为什么这些空格会附加到我的转换器名称(或 id)的末尾?
【问题讨论】:
标签: jsf-2 primefaces