2015-07-15 3 views
1

У меня есть проблема с этим простым р: selectBooleanCheckbox компонент:primefaces р: selectBooleanCheckbox по умолчанию проверяется состояние

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

в вспомогательном компоненте у меня есть состояние по умолчанию булевой переменной booleanFlag = True внутри метода @PostConstruct. Почему метод setter вызывается с «ложным» значением ???? По-видимому, невозможно установить флажок по умолчанию ...

Такое поведение происходит также (и только) с другим «булевым компонентом состояния», как и новый компонент pf 5.0 p: inputSwitch. (например, флажок tristate расширения pf имеет состояние на основе строки и хорошо работает)

Где моя ошибка?

ответ

0

Нет, можно иметь по умолчанию проверяется флажок, просто инициализировать его значение 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> 
+0

true означает, что флажок установлен, а false - не проверяется ... проблема в том, что вызывается setBooleanFlag с параметром value = false –

+0

кажется, что компонент UIInput имеет localValue (внутри StateHelper) по-прежнему установлен в false, поэтому updateModel вызывает относительный setter с localValue = false. –

+0

Мне жаль, что я прав, а не фальшивый, я отредактировал свой ответ. –

1

истинной проверяется, а ложные - не проверены ....

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

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

Про blem - это то, что вызывается setBooleanFlag с параметром value = false

Смежные вопросы