所以,这是jsf组件:
<h:selectBooleanCheckbox id="cb#{index}" value="backingBean.value" />
这是支持bean java的一部分:
/**
* getValue is a method which checks if a checkbox is selected or not, using the checkbox ID
*/
public boolean getValue() {
//TODO: get the checkbox id
String checkboxID = ??
if (getCheckedIDs().contains(checkboxID)) {
return true;
}
return false;
}
当页面加载复选框时,如果选中复选框,我想以这种方式检查。 所以问题是,写什么而不是 ?? 来获取调用该方法的复选框的ID? 我只能使用JSF 1.1非常重要,所以有很多解决方案都不能使用这个版本。
答案 0 :(得分:0)
您无需“计算”复选框的值(“设置”或“取消设置”)。 JSF只会调用backingbean.setValue(x)
(x
为true
或false
),具体取决于当时是否打开或关闭复选框(即提交页面时)。
这是自动发生的,因为您说value="#{backingBean.value}"
。
所以在setValue()
中你只需存储参数,在getValue
中返回存储的参数。其余的由JSF为您完成。
如果您希望默认情况下启用该复选框,则将存储的值设置为true。
例如:
private boolean storedValue = true; // or false if you want it to be off by default
public boolean getValue() {
return storedValue;
}
public void setValue(boolean value) {
this.storedValue = value;
}