JSF 1.1 - 如何在支持bean

时间:2017-12-28 10:17:46

标签: jsf jsf-1.1

所以,这是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非常重要,所以有很多解决方案都不能使用这个版本。

1 个答案:

答案 0 :(得分:0)

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

您无需“计算”复选框的值(“设置”或“取消设置”)。 JSF只会调用backingbean.setValue(x)xtruefalse),具体取决于当时是否打开或关闭复选框(即提交页面时)。

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