我有一个<h:inputText>
接受long
这样的值
<h:inputText value="#{ServiceTable.ID}" />
该属性声明为
public class ServiceTable {
private long ID;
// Getter and setter for ID.
}
当我打开页面时,我总是在文本框中看到0
。我怎么能避免呢?我只需要一个空的文本框。我正在使用JSF 1.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中手动解析。