Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/jsf/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jsf 避免在h:inputText中显示默认长值0_Jsf_Jsf 1.2 - Fatal编程技术网

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

Jsf 避免在h:inputText中显示默认长值0,jsf,jsf-1.2,Jsf,Jsf 1.2,我有一个,它接受这样一个long值 <h:inputText value="#{ServiceTable.ID}" /> public class ServiceTable { private long ID; // Getter and setter for ID. } 当我打开页面时,我总是在文本框中看到0。我怎样才能避免呢?我只需要一个空的文本框。我正在使用JSF1.2。使用Long而不是Long。它默认为null private Long ID; 而

我有一个
,它接受这样一个
long

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

    private long ID;

    // Getter and setter for ID.
}

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

使用
Long
而不是
Long
。它默认为
null

private Long ID;
而且,如果您正在运行Tomcat 6.0.16或更高版本或其分支,则需要将以下VM参数添加到服务器启动参数中,并禁用原语及其包装器的EL强制:

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

糟透了!许多开发人员无法访问实际的服务器,有时您无法找到客户机并告诉他:“停止您的服务器并使用此启动选项重新启动一切”

为什么apache团队中的人从来没有想过这一点


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

感谢BalusC的回复。我定期阅读您的博客。它提供了大量信息,对新手非常有用。你能解释一下区别吗?
long
是一个原语,当声明为类/实例变量时,它的默认值为
0
Long
是一个包装器对象,其默认值为
null
。这只是基本的Java。另请参见关于基本类型的Java教程:感谢BalusC的帮助。它成功了。您能告诉我在哪里添加上述命令吗?作为启动VM参数或作为
Java\u OPTS
环境变量。但如果成功了,那么你就不必再添加那个论点了。我还有一个小的澄清。今天我问了这个问题,你回答说它很好。但是即使在提交后复选框仍然处于选中状态。如何避免这种情况?