避免默认长值0显示在h:inputText中

时间:2011-09-20 14:21:41

标签: jsf jsf-1.2

我有一个<h:inputText>接受long这样的值

<h:inputText value="#{ServiceTable.ID}" />

该属性声明为

public class ServiceTable {

    private long ID;

    // Getter and setter for ID.
}

当我打开页面时,我总是在文本框中看到0。我怎么能避免呢?我只需要一个空的文本框。我正在使用JSF 1.2。

2 个答案:

答案 0 :(得分:8)

使用Long代替long。它默认为null

private Long ID;

并且,如果您正在运行Tomcat 6.0.16或更新版本或它的分支,那么您需要将以下VM参数添加到服务器启动参数以及禁用原语及其包装器的EL强制:

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

答案 1 :(得分:1)

可怕!许多开发人员无法访问实际的服务器,有时您只能转到客户端并告诉他:“停止服务器并使用此启动选项重新启动所有服务器”。

为什么apache团队的人们从未想过这个?

如果您遇到这种情况 - 比如我自己 - 另一种解决方案是将字段作为字符串并在您的辅助bean中手动解析。