我有一个支持bean,其中filelds是Long,Double,Integer,String 当我没有在输入字段中指定任何内容时,它将Long,Integer和Double取为零而不是null。我正在使用tomcat来部署我的应用程序。有什么解决方案吗?我尝试了以下上下文参数,但它不起作用。
<context-param>
<param-name>javax.faces.INTERPRET_EMPTY_STRING_SUBMITTED_VALUES_AS_NULL</param-name>
<param-value>true</param-value>
</context-param>
答案 0 :(得分:7)
将以下VM参数添加到Tomcat启动选项。
-Dorg.apache.el.parser.COERCE_TO_ZERO=false
您还需要确保已声明faces-config.xml
符合JSF 2.0规范。
<?xml version="1.0" encoding="UTF-8"?>
<faces-config
xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-facesconfig_2_0.xsd"
version="2.0">
<!-- Your config here -->
</faces-config>
否则将无法激活JSF 2.0特定设置/功能。
答案 1 :(得分:0)
注意:如果元素放在<ui:repeat>
内,则上述内容无效,但如果替换为<c:forEach>