我有一个<h:inputText>
接受这样的long
值
<h:inputText value="#{ServiceTable.ID}" />
该属性是这样声明的
public class ServiceTable {
private long ID;
// Getter and setter for ID.
}
当我打开页面时,我总是0
在文本框中看到。我怎样才能避免它?我只需要一个空的文本框。我正在使用 JSF 1.2。
使用Long
而不是long
. 它默认为null
.
private Long ID;
而且,如果您正在运行 Tomcat 6.0.16 或更新版本或它的一个分支,那么您还需要将以下 VM 参数添加到服务器启动参数中,以禁用原语及其包装器的 EL 强制:
-Dorg.apache.el.parser.COERCE_TO_ZERO=false
可怕!许多开发人员无法访问实际的服务器,有时您只是不能去客户端并告诉他:“停止您的服务器并使用此启动选项重新启动一切”。
为什么 apache 团队的人从来没有想过这个问题?
如果您处于这种情况 - 像我一样 - 另一种解决方案是将字段作为字符串获取并在您的支持 bean 中手动解析它。