Ответ 1
<h:selectBooleanCheckbox>
должен, как сказано в его названии, быть связан с boolean
или Boolean
свойством. Ничего больше. То, что он допускает атрибут converter
самом деле является ошибкой в спецификации. Это никогда не должно было позволять это.
Проблема больше в вашей модели, почему вы используете int
для представления логического состояния? Измените свою модель, чтобы она была полностью boolean
.
Если по какой-то причине изменение модели не подходит (сторонний API, глупый архитектор, или глупые бизнес-ограничения и т.д.), Поместите получатель/установщик модели в компонент поддержки следующим образом.
public boolean isChecked() {
return someModel.getSomeInt() != 0;
}
public void setChecked(boolean checked) {
someModel.setSomeInt(checked ? 1 : 0);
}
и вместо этого используйте его как <h:selectBooleanCheckbox value="#{bean.checked}"/>
.