JSF 1.1 - 如何在支持 bean 中获取 h:selectBooleanCheckbox 的 ID 属性



所以,这里是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 非常重要,因此有许多解决方案不适用于此版本。

编辑:正如@Kukeltje正确指出的那样,主要问题是值表达式不正确。更改后,以下内容适用。

您无需"计算"复选框的值("设置"或"取消设置"(。JSF 将简单地调用backingbean.setValue(x)(x truefalse(,具体取决于复选框在当时是打开还是关闭(即当您提交页面时(。

这会自动发生,因为您说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;
}

相关内容

  • 没有找到相关文章

最新更新