0

我想构建一个表单,根据其他组件的状态动态更改可见的组件。

例如...有一些文本框和一些复选框,如果用户激活某个复选框,应该会出现一堆其他输入元素。

我可以用 JSF 2.0 + Tomahawk 做到这一点,还是我必须让另一个库来做到这一点?我该怎么做?如果没有 AJAX,这将无法工作,不是吗?

提前致谢!

4

1 回答 1

6

Ajax 是一种方便的方法,JSF 2.0 附带了 ajax。

这是一个例子:

<h:selectOneRadio value="#{a7.myCheckbox.state}">
      <f:selectItem itemLabel="#{bundle.yes}" itemValue="1"/>
      <f:selectItem itemLabel="#{bundle.no}" itemValue="0"/>
      <f:ajax render="uawGroup"/>
</h:selectOneRadio>

<h:panelGroup id="uawGroup" layout="block">
   <h:outputText value="#{bundle.wichmed}"
        rendered="#{a7.myCheckbox.state == 1}"/>
   <h:inputText value="#{}" id="myInput"
        rendered="#{a7.myCheckbox.state == 1}"/> 
</h:panelGroup>

在(itemValue == 1)h:panelGroup中单击“是”选项时将呈现。h:selectOneRadio最初它是 0(在 bean“a7”中设置)。

充当包装器,h:panelGroup因为您只能使用实际呈现在页面上的 ajax 更新组件(h:outputText并且h:inputText最初不显示)。

于 2011-04-13T19:45:58.467 回答