jsf readonly解决办法
问题描述
jsf对readonly的支持不够好,如下所示的使用方式会导致<h:inputText 的值不能不能被提交。
?
<h:inputText value="#{EquipmentBB.test }" readonly="#{EquipmentBB.readonly }"></h:inputText>
<h:commandButton action="#{ EquipmentBB.setReadonly(false)}" value="提交">
</h:commandButton>
?
//EquipmentBB 被定义为request作用域
public class EquipmentBB implements Serializable {
??? private boolean readonly;//省略get set方法
??? private String test;
?
原因分析jsf不支持readonly组件的提交,参见HtmlBasicRenderer 的解码方法,当组件是disabled或readonly时不会获取页面提交过来的值。
private boolean readonly;//利用默认就是false,页面就能提交,但当多次操作后可能会出现混乱