我想设置selectManyCheckbox的复选框以检查条件是否为真“#{myBean.isCondition}”:
MyBean.java
public class MyBean{
private boolean isCondition;
...
public boolean isCondition{
return isCondition;
}
...
}
my_page.jspx:
<h:selectManyCheckbox
layout="pageDirection"
label="#{messages['numsTelephone.label']}"
value="#{listSelected}">
<s:selectItems var="clientTelephone"
value="#{list}"
label="#{clientTelephone}" />
</h:selectManyCheckbox>
我需要知道它是否存在类似
的内容checked = "#{myBean.isCondition}"
我可以在我的selectManyCheckbox块中添加?或者我应该使用javascript吗?
欢迎任何其他解决方案。
我的另一个问题是如果选中一个复选框,如何将myBean.isCondition设置为true?
谢谢,
答案 0 :(得分:1)
在&#34;全选&#34;中使用<f:ajax>
复选框并在侦听器方法中执行选择作业,然后重新呈现复选框。
开球示例:
<h:form>
<h:selectBooleanCheckbox value="#{bean.selectAll}">
<f:ajax listener="#{bean.onSelectAll}" render="items" />
</h:selectBooleanCheckbox>
<h:selectManyCheckbox id="items" value="#{bean.selectedItems}">
<f:selectItems value="#{bean.availableItems}" />
</h:selectManyCheckbox>
</h:form>
@Named
@ViewScoped
public class Bean implements Serializable {
private boolean selectAll; // +getter +setter
private List<String> selectedItems; // +getter +setter
private Map<String, String> availableItems; // +getter (no setter necessary)
@PostConstruct
public void init() {
availableItems = new LinkedHashMap<String, String>();
availableItems.put("Foo label", "foo");
availableItems.put("Bar label", "bar");
availableItems.put("Baz label", "baz");
}
public void onSelectAll() {
selectedItems = selectAll ? new ArrayList<>(availableItems.values()) : null;
}
// ...
}