Jsf 设置页面刷新时selectBooleanCheckbox的值
在第页,我有一个复选框,用于启用/禁用h:inputText和h:SelectOne菜单。在我刷新页面之前,它可以正常工作。复选框的值可能由浏览器缓存 因此,当刷新后将复选框设置为“true”时,两个控件都被启用。selectOneMenu对应于init()方法中设置的值呈现,但selectBooleanCheckbox和inputText不对应。我怎样才能解决这个问题?我使用Firefox浏览器 支持bean很简单,一个属性和一个方法init,其中的值设置为falseJsf 设置页面刷新时selectBooleanCheckbox的值,jsf,primefaces,Jsf,Primefaces,在第页,我有一个复选框,用于启用/禁用h:inputText和h:SelectOne菜单。在我刷新页面之前,它可以正常工作。复选框的值可能由浏览器缓存 因此,当刷新后将复选框设置为“true”时,两个控件都被启用。selectOneMenu对应于init()方法中设置的值呈现,但selectBooleanCheckbox和inputText不对应。我怎样才能解决这个问题?我使用Firefox浏览器 支持bean很简单,一个属性和一个方法init,其中的值设置为false @ManagedBean
@ManagedBean(name="newBean")
@ViewScoped
public class NewBean implements Serializable {
private boolean booleanValue;
public NewBean() {
}
public void init()
{
booleanValue = true;
}
public boolean isBooleanValue() {
return booleanValue;
}
public void setBooleanValue(boolean booleanValue) {
this.booleanValue = booleanValue;
}
}
页面来源:
<h:body>
<f:metadata>
<f:viewAction action="#{newBean.init()}"></f:viewAction>
</f:metadata>
<h:form>
<h:outputText value="#{newBean.booleanValue}"></h:outputText>
<br/>
<h:selectBooleanCheckbox value="#{newBean.booleanValue}" id="selected">
<f:ajax event="change"
render="enabledInput disabledInput enabledMenu"></f:ajax>
</h:selectBooleanCheckbox>
<br/>
<h:inputText disabled="#{newBean.booleanValue}" id="enabledInput"></h:inputText><br/>
<h:selectOneMenu disabled="#{!newBean.booleanValue}" id="enabledMenu">
<f:ajax></f:ajax>
</h:selectOneMenu>
</h:form>
</h:body>
编辑:添加了一些屏幕截图,以便更容易理解问题
正确:用户打开的页面(复选框被选中,它对应于bean值,文本框被禁用,菜单被启用):
正确:用户未选中复选框(复选框未选中,bean上的值也为false,文本框已启用,菜单已禁用):
问题:取消选中用户刷新页面后。bean上的值为true,但复选框仍处于未选中状态。此外,文本框和菜单都已启用
嘿,我不太明白你的问题,但我想指出两点
<f:metadata>
<f:viewAction action="#{newBean.init()}"></f:viewAction>
</f:metadata>
必须采用希望我能帮上忙。您是否尝试将bean会话限定在范围内?谢谢您的回答。添加了一些截图。SessionScoped bean也有同样的效果。答案是触摸。无论如何,在Red Hat JBoss Developer Studio 9.0.0.GA下工作时,我假设所有要生效的操作都必须在感谢您更正答案中。