如何使数字输入区域最初为空而不是0或0.00?

Gar*_*her 7 jsf numbers input zero

我有一个输入位置应该得到一个数字.我希望它显示为空.但是,当我运行我的程序时,我默认为0或0.00.我怎么能把它弄空?

Bal*_*usC 19

如果将值绑定到基元而不是其包装表示,则会发生这种情况.原语int始终默认为0,原语double始终默认为0.0.您想要使用IntegerDouble(或BigDecimal)代替.

例如:

public class Bean {

    private Integer number;

    // ...
}
Run Code Online (Sandbox Code Playgroud)

然后在处理表单提交时还需要考虑两件事.首先,您需要指示JSF将空字符串提交的值解释为null,否则EL仍会将空字符串强制转换为00.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>
Run Code Online (Sandbox Code Playgroud)

其次,如果你使用的是Tomcat/JBoss的或使用Apache EL解析器盖下的任何服务器,那么你需要指示它不强迫null00.0在案件Number类型由以下VM参数(它unintuitively处理Number类型,如果他们是原始的):

-Dorg.apache.el.parser.COERCE_TO_ZERO=false
Run Code Online (Sandbox Code Playgroud)

也可以看看: