请求范围bean中未设置<h:inputText>
值。如果从DB保留该值,则可以正常工作。
视图:
<h:inputText id="receipient" size="90" styleClass="text" readonly="#{!bean.enable}" value="#{bean.recipient}" />
豆:
public class Bean {
private String recipient;
Bean(){
recipient = //load from db
}
//set
//get
}
问题是什么?我该如何解决?
答案 0 :(得分:0)
确保readonly="#{!bean.enable}"
的评估与初始视图中的评估相同。如果它在表单提交的应用请求值阶段评估true
,则不会处理组件的值(因为它被标记为只读)。
一个简单的测试是将bean放在会话范围内。如果这样可以解决问题,那么你就知道了罪魁祸首。如果您使用的是JSF 2.0,只需使用@ViewScoped
而不是@RequestScoped
将bean放入视图范围。如果你仍然使用JSF 1.x,请使用Tomahawk's <t:saveState>
组件让bean像JSF 2.0视图一样运行。
<t:saveState value="#{bean}" />