我有一个PrimeFaces commandLink,我想调用一个带有一些参数的actionListener。其中一个参数可能是 null 。首先,我偶然发现this issue并将票证中的补丁2152应用到jbossweb 7.0.17(这是JBoss随附的)。 NPE消失了,但我的actionListener获取一个空字符串passend作为参数而不是 null 。我还将系统属性 org.apache.el.parser.COERCE_TO_ZERO 设置为 false ,但方法调用没有任何变化。
actionListener="#{fileDownloadBean.downloadChainFile(cc.attrs.forChain, cc.parent.attrs.value, cc.parent.attrs.header)}"
// => cc.parent.attrs.header could be null but is passed as empty string
如果我通过EL检查JSF / xHTML中的 null 值,一切都是正确的
#{cc.parent.attrs.header eq null}
// => returns true
//Edit 03.04.2015 18:05: returns also true
#{empty cc.parent.attrs.header}
有关我做错的任何建议吗?是否将 null 传递给EL方法禁止?
我正在使用PrimeFaces 5.2,JBoss 7.1.3,Mojarra 2.1.29-jbossorg-1。
编辑11.04.2015 17:10
正如评论中所提到的,我已经测试过下面的上下文参数,但没有成功。它似乎只影响UIInput-components的提交值。
javax.faces.INTERPRET_EMPTY_STRING_SUBMITTED_VALUES_AS_NULL=true
答案 0 :(得分:0)
在你的web.xml中:
<context-param>
<param-name>javax.faces.INTERPRET_EMPTY_STRING_SUBMITTED_VALUES_AS_NULL</param-name>
<param-value>true</param-value>
</context-param>