根据selectonemenu值的更改更新另一个组件

时间:2014-02-12 20:43:08

标签: ajax jsf-1.2 selectonemenu

我们正在为我们的项目使用JSF 1.2。要求是根据当前selectonemenu中的值更改来更新另一个selectonemenu选项。

基于select1选项,select2需要更新。

<h:selectOneMenu id="select1" value="#{subscription.subscriptions}" onchange="javascriptMethod()">
    <f:selectItem id="item1" itemLabel="News" itemValue="1" />
    <f:selectItem id="item2" itemLabel="Sports" itemValue="2" />        
</h:selectOneMenu>

<h:panelGroup id="panel2">
 <h:selectOneMenu id="select2" value="#{subscription.subscriptions2}">
    <f:selectItem id="item1" itemLabel="News" itemValue="1" />
    <f:selectItem id="item2" itemLabel="Sports" itemValue="2" />        
</h:selectOneMenu>
</h:panelGroup>

1 个答案:

答案 0 :(得分:0)

您可以像这样使用ajax支持

  <h:selectOneMenu id="select1" value="#{subscription.subscriptions}"   >
    <f:selectItem id="item1" itemLabel="News" itemValue="1" />
    <f:selectItem id="item2" itemLabel="Sports" itemValue="2" />  


 </h:selectOneMenu>  

Jsf 1.2没有ajax支持你唯一能做的就是在命令按钮上发生整页重新加载。

我认为你使用richfaces作为ajax和富ui组件的第三方。 希望这可以帮助。

如果您正在使用primefaces,那么您可以像这样替换标签

<p:ajax event="onchange" update="select2" action="if you want to anything in   
                                                                      backend"/>   

如果你想通过javascript做,那么有一个隐藏的h:commandButton并将代码放入你的 像这样的javascriptMethod()方法

     document.getElementById("myHiddenButtonId").click();