Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/371.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
Java Can';t修改h:inputText(如果为');启用_Java_Jsf_Icefaces - Fatal编程技术网

Java Can';t修改h:inputText(如果为');启用

Java Can';t修改h:inputText(如果为');启用,java,jsf,icefaces,Java,Jsf,Icefaces,我这里有一个简单的问题。如果我问是因为我在这里和谷歌都找不到任何答案 我用的是IceFaces3.1 我正在从一个Javabean填充一个inputtext。它仅在属性为disabled=“true”时工作 以下是xhtml代码: <h:inputText value="#{PageCode.quantity}" disabled="false"/> 它不包含该值。它不是CSS,因为我已经调试了它,并且有一个空值 但如果我将其更改为: <h:inputText value=

我这里有一个简单的问题。如果我问是因为我在这里和谷歌都找不到任何答案

我用的是IceFaces3.1

我正在从一个Javabean填充一个inputtext。它仅在属性为disabled=“true”时工作

以下是xhtml代码:

<h:inputText value="#{PageCode.quantity}" disabled="false"/>
它不包含该值。它不是CSS,因为我已经调试了它,并且有一个空值

但如果我将其更改为:

 <h:inputText value="#{PageCode.quantity}" disabled="true"/>

它起作用了。但我需要启用它以便编辑它等等


这怎么可能呢?

显然你在错误的时刻调用了
setQuantity(1)

未禁用时,
将在更新模型值阶段设置其提交的值。因此,如果您在更新模型值阶段之前手动设置了它(例如,在验证程序或值更改侦听器内的验证阶段),那么稍后它将被提交的值覆盖。如果组件被禁用,则不会设置其提交的值。这就解释了你看到的症状

您需要确保在调用操作阶段(更新模型值阶段之后)调用
setQuantity(1)

根据最常见的初学者错误,我猜您实际上是在
valuechangeelistener
方法中完成了这项工作,而您对旧值不感兴趣。你不应该那样做。您应该改用

另见:

是的,你猜是:)this.setQuantity()是在valueChangeListener中调用的。我以为这是倾听者的功能,所以我是个笨蛋。IceFaces支持这个(F:ajax)标记吗?它只是标准JSF的一部分。
 <h:inputText value="#{PageCode.quantity}" disabled="true"/>