Java Can';t修改h:inputText(如果为');启用
我这里有一个简单的问题。如果我问是因为我在这里和谷歌都找不到任何答案 我用的是IceFaces3.1 我正在从一个Javabean填充一个inputtext。它仅在属性为disabled=“true”时工作 以下是xhtml代码: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=
<h:inputText value="#{PageCode.quantity}" disabled="false"/>
它不包含该值。它不是CSS,因为我已经调试了它,并且有一个空值
但如果我将其更改为:
<h:inputText value="#{PageCode.quantity}" disabled="true"/>
它起作用了。但我需要启用它以便编辑它等等
这怎么可能呢?显然你在错误的时刻调用了
setQuantity(1)
未禁用时,
将在更新模型值阶段设置其提交的值。因此,如果您在更新模型值阶段之前手动设置了它(例如,在验证程序或值更改侦听器内的验证阶段),那么稍后它将被提交的值覆盖。如果组件被禁用,则不会设置其提交的值。这就解释了你看到的症状
您需要确保在调用操作阶段(更新模型值阶段之后)调用setQuantity(1)
根据最常见的初学者错误,我猜您实际上是在valuechangeelistener
方法中完成了这项工作,而您对旧值不感兴趣。你不应该那样做。您应该改用
另见:
<h:inputText value="#{PageCode.quantity}" disabled="true"/>