5

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

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

该属性是这样声明的

public class ServiceTable {

    private long ID;

    // Getter and setter for ID.
}

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

4

2 回答 2

8

使用Long而不是long. 它默认为null.

private Long ID;

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

-Dorg.apache.el.parser.COERCE_TO_ZERO=false
于 2011-09-20T14:22:38.690 回答
1

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

为什么 apache 团队的人从来没有想过这个问题?

如果您处于这种情况 - 像我一样 - 另一种解决方案是将字段作为字符串获取并在您的支持 bean 中手动解析它。

于 2011-12-15T22:46:36.937 回答