JSF:动态更改表单

时间:2011-04-13 19:08:30

标签: ajax forms jsf jsf-2 tomahawk

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

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

我可以使用JSF 2.0 + Tomahawk执行此操作,还是必须让另一个库执行此操作?我怎么能这样做?如果没有AJAX,这将无效,是吗?

提前致谢!

1 个答案:

答案 0 :(得分: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>

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

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