我想通过使用h:selectManyCheckbox将一些布尔分组组合在一起。我不希望该值是ArrayList或Array,只是我的XX布尔字段。无论如何这可以实现吗?
答案 0 :(得分:1)
<h:selectBooleanCheckbox>
。
<h:selectBooleanCheckbox value="#{bean.boolean1}" />
<h:selectBooleanCheckbox value="#{bean.boolean2}" />
<h:selectBooleanCheckbox value="#{bean.boolean3}" />
...
答案 1 :(得分:0)
我知道问题是陈旧的,但万一有人(就像我一样)仍然在寻找答案
使用Java 8:
<h:selectManyCheckbox value="#{bean.checks}">
<f:selectItem itemValue="value1" itemLabel="Label 1" />
<f:selectItem itemValue="value2" itemLabel="Label 2" />
<f:selectItem itemValue="value3" itemLabel="Label 3" />
</h:selectManyCheckbox>
豆:
private List<String> checks;
private Map<String, Runnable> checksMap;
private void initMap() {
checksMap = new HashMap<>();
checksMap.put("value1", () -> myentity.setBoolean1(true));
checksMap.put("value2", () -> myentity.setBoolean2(true));
checksMap.put("valueN", () -> myentity.setBooleanN(true));
}
当您保存实体时,只需迭代选择的检查,并根据checksMap设置您的布尔值:
checks.stream().forEach( (e) -> checksMap.get(e).run() );