Ajax JSF:动态更改表单

Ajax JSF:动态更改表单,ajax,forms,jsf,jsf-2,tomahawk,Ajax,Forms,Jsf,Jsf 2,Tomahawk,我想构建一个表单,根据其他组件的状态动态更改可见组件 例如。。。有一些文本框和一些复选框,如果用户激活某个复选框,则会出现一组其他输入元素 我可以用JSF2.0+Tomahawk来做这件事吗?或者我需要另一个库来做这件事吗?我该怎么做呢?如果没有AJAX,这是行不通的,是吗 提前谢谢 Ajax是一种方便的方法,JSF2.0附带了Ajax捆绑包 以下是一个例子: <h:selectOneRadio value="#{a7.myCheckbox.state}"> <f:

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

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

我可以用JSF2.0+Tomahawk来做这件事吗?或者我需要另一个库来做这件事吗?我该怎么做呢?如果没有AJAX,这是行不通的,是吗


提前谢谢

Ajax是一种方便的方法,JSF2.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:selectOneRadio
中单击“是”选项时,将呈现
h:panelGroup
(itemValue==1)。最初它是0(在bean“a7”中设置)


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

ajax是一种方便的方法,JSF2.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:selectOneRadio
中单击“是”选项时,将呈现
h:panelGroup
(itemValue==1)。最初它是0(在bean“a7”中设置)


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

这太好了,谢谢!但是如果我想在单击h:按钮时显示一组特定的组件,它是如何工作的呢?非常感谢。为了弄清楚我想做什么:我有一些panelGrids,我希望用户一步一步地浏览它们(填写grid1中的内容,按下使grid2出现的按钮,依此类推)。我怎样才能做到这一点?我可以让服务器处理grid1的某些输入以在grid2中显示结果吗?@geehhdaa您也可以将
f:ajax
放入
h:commandButton
中。使用
execute
属性在ajax调用期间处理输入字段:
谢谢!但问题是,我希望这些小组最初是不可见的。因此,效果不应该导致处理内容,它应该只使下一个面板组可见。我应该如何选择组的“渲染”属性,这些组只有在单击按钮时才会显示?这个按钮没有状态,是吗?编辑:实际上其中一个按钮应该调用一些操作。我怎样才能叫一个动作呢?这太棒了,谢谢!但是如果我想在单击h:按钮时显示一组特定的组件,它是如何工作的呢?非常感谢。为了弄清楚我想做什么:我有一些panelGrids,我希望用户一步一步地浏览它们(填写grid1中的内容,按下使grid2出现的按钮,依此类推)。我怎样才能做到这一点?我可以让服务器处理grid1的某些输入以在grid2中显示结果吗?@geehhdaa您也可以将
f:ajax
放入
h:commandButton
中。使用
execute
属性在ajax调用期间处理输入字段:
谢谢!但问题是,我希望这些小组最初是不可见的。因此,效果不应该导致处理内容,它应该只使下一个面板组可见。我应该如何选择组的“渲染”属性,这些组只有在单击按钮时才会显示?这个按钮没有状态,是吗?编辑:实际上其中一个按钮应该调用一些操作。我如何调用一个动作?