0

请帮帮我!我是新手。我有 3 个组件。如果第一个 selectBooleanCheckbox 被选中,那么第二个和第三个组件应该被禁用。如果第一个 selectBooleanCheckbox 未选中,那么第二个和第三个组件应该是活动的。

<h:selectBooleanCheckbox id="checkBox_1" value="#{MyManagerBean.goldRun}"
              valueChangeListener="#{MyManagerBean.valueChangeInput}"/>
<h:selectBooleanCheckbox id="checkBox_2" value="#{MymanagerBean.useResult}" />
<h:selectBooleanCheckbox id="checkBox_3" value="#{MymanagerBean.goldSize}" />

我该怎么做?

 public void valueChangeInput(ValueChangeEvent event) {
       event.getNewValue()......
       .............................
       ..............................
 }
4

1 回答 1

3

我认为您正在寻找的那种行为只能使用 ajax 来完成。如果您使用的是 JSF2,那么 ajax 是内置的。您可以执行以下操作:

<h:selectBooleanCheckbox id="checkBox_1" value="#{MyManagerBean.goldRun}">
  <f:ajax event="change" render="checkBox_2 checkBox_3"/>
</h:selectBooleanCheckbox>
<h:selectBooleanCheckbox id="checkBox_2" value="#{MymanagerBean.useResult}" disabled="#{MyManagerBean.goldRun}" />
<h:selectBooleanCheckbox id="checkBox_3" value="#{MymanagerBean.goldSize}" disabled="#{MyManagerBean.goldRun}"/>

上面的代码必须是一种形式。

如果您使用 JSF 1.2,那么您将需要使用支持 ajax 的 JSF 第三方库,例如RichFaces / ICEfaces。它们具有以相同方式工作的相似组件。

于 2011-09-14T12:40:17.170 回答