JSF2.0空白输入字段未设置为NULL

时间:2011-05-23 13:58:23

标签: java jsf jsf-2

我有一个支持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>

2 个答案:

答案 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>

,则无效