我想构建一个表单,根据其他组件的状态动态更改组件。
例如......有一些文本框和一些复选框,如果用户激活某个复选框,则会出现一堆其他输入元素。
我可以使用JSF 2.0 + Tomahawk执行此操作,还是必须让另一个库执行此操作?我怎么能这样做?如果没有AJAX,这将无效,是吗?
提前致谢!
答案 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:outputText
和h:inputText
最初不会显示)。