Jsf primefaces p:selectBooleanCheckbox默认选中状态

Jsf primefaces p:selectBooleanCheckbox默认选中状态,jsf,primefaces,Jsf,Primefaces,我对这个简单的p:selectBooleanCheckbox组件有一个问题: <p:selectBooleanCheckbox value="#{BackingBean.booleanFlag}"> <p:ajax event="change" global="false" /> </p:selectBooleanCheckbox> 在backingbean中,在@PostConstruct方法中,我的默认状态是布尔变量booleanfag

我对这个简单的p:selectBooleanCheckbox组件有一个问题:

<p:selectBooleanCheckbox value="#{BackingBean.booleanFlag}"> 
      <p:ajax event="change" global="false" />
</p:selectBooleanCheckbox>

在backingbean中,在@PostConstruct方法中,我的默认状态是布尔变量booleanfag=true。 为什么用“false”值调用setter方法???? 以这种方式,似乎不可能有一个默认的复选框

这种行为也发生在其他“布尔状态组件”上,比如新的PF5.0组件p:inputSwitch。(例如,pf extension tristate复选框具有基于字符串的状态,并且工作正常)


我的错在哪里?

否,可以选中默认复选框,只需在支持bean中声明时将其值初始化为
true

private boolean booleanFlag = true;
public boolean isBooleanFlag() {
    return booleanFlag;
}

public void setBooleanFlag(boolean value) {
    this.booleanFlag = value;
}
在您的页面中:

<p:selectBooleanCheckbox value="#{BackingBean.booleanFlag}"> 
    <p:ajax event="change" global="false" />
</p:selectBooleanCheckbox>


true表示已检查,而false表示未检查

private boolean booleanFlag = true; // DEFAULT CHECKED 
public boolean isBooleanFlag() {
    return booleanFlag;
}

public void setBooleanFlag(boolean value) {
    this.booleanFlag = value;
}

问题在于调用setBooleanFlag时,参数值=false

true表示已选中,而false表示未选中……问题在于调用setBooleanFlag时,参数值=false似乎UIInput组件的localValue(内部StateHelper)仍设置为false,所以updateModel调用localValue=false的相对setter。很抱歉,我选择了true而不是false,我编辑了我的答案。p:SelectBoolean复选框放在表列的页脚内,这可能会导致组件状态lyfecycle的行为修改?我认为如果它在表列内,则不会有任何影响,请编辑您的问题,以包含所有相关代码。