我想构建一个表单,根据其他组件的状态动态更改可见的组件。
例如...有一些文本框和一些复选框,如果用户激活某个复选框,应该会出现一堆其他输入元素。
我可以用 JSF 2.0 + Tomahawk 做到这一点,还是我必须让另一个库来做到这一点?我该怎么做?如果没有 AJAX,这将无法工作,不是吗?
提前致谢!
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
最初不显示)。