Обновите другой компонент на основе изменения значения 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>

person user679526    schedule 12.02.2014    source источник


Ответы (1)


Вы можете использовать поддержку 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 и Rich UI. Надеюсь это поможет.

Если вы используете простые лица, вы можете заменить тег следующим образом:

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

Если вы хотите сделать это с помощью javascript, создайте скрытый h:commandButton и поместите код в свой метод
javascriptMethod(), подобный этому

     document.getElementById("myHiddenButtonId").click();  
person Srikanth Ganji    schedule 13.02.2014