JSF 2 - 隐藏<! - 的默认值?扩展数字 - >

时间:2011-08-26 14:41:48

标签: java jsf-2 default-value

有没有办法隐藏我的号码属性的默认值?我有一个int字段,在我看来,<h:inputText />字段显示为0.除此之外,如果我将此输入留空,我会得到NullPointerException

我可以隐藏默认值并将空输入视为默认值吗?

我在mojarra 2.1.2

上使用Tomcat 7

1 个答案:

答案 0 :(得分:10)

原始int始终默认为0。您想要使用Integer。 E.g:

public class Entity {

    private Integer value;

    // ...
}

关于在提交空数据时保留null,请将以下上下文参数添加到web.xml

<context-param>
    <param-name>javax.faces.INTERPRET_EMPTY_STRING_SUBMITTED_VALUES_AS_NULL</param-name>
    <param-value>true</param-value>
</context-param>

此外,如果您正在使用Tomcat或使用Apache EL解析器的克隆,请添加以下服务器启动VM参数,以防止它将Number值视为基元:

-Dorg.apache.el.parser.COERCE_TO_ZERO=false

在Eclipse中,您可以在打开启动配置的 Arguments 选项卡中的服务器配置(双击 Servers 视图中的服务器条目)中进行设置对话。在生产中,您可以将其添加到JAVA_OPTS环境变量。