有没有办法隐藏我的数字属性的默认值?我有一个 int
场,在我看来 <h:inputText />
字段显示 0。除此之外,如果我将此输入留空,我会得到一个 NullPointerException
。对此。
我可以隐藏默认值并将空输入视为默认值吗?
我正在使用 mojarra 2.1.2
在 Tomcat 7
最佳答案
原语 int
总是默认为 0
。您想改用 Integer
。例如:
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 中,您可以在 Open launch configurationArguments 选项卡中的服务器配置中设置它(双击 Servers View 中的服务器条目) em>对话。在生产环境中,您可以将它添加到 JAVA_OPTS
环境变量中。
关于java - JSF 2 - 在 <? 上隐藏默认值扩展号码>,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7206401/