2013-09-04 8 views
5

Moje wymagania są takie. Mam selectMenu z pewnymi wartościami (Przykłady: Inżynieria, Medycyna, Prawo itp.,). Załóżmy, że jeśli wybiorę opcję Inżynieria z rozwijanego menu, chcę utworzyć dynamicznie rozwijane menu z wartościami związanymi z inżynierią (przykład: elektronika, komputery, urządzenia elektryczne itp.). Jak osiągnąć to w JSF 2.0?Dodawanie dynamicznych elementów rozwijanych w JSF

+0

Sprawdź naszą [selectonemenu] '' wiki stronę po więcej wskazówek, jak uzyskać większość z tych elementów: http: // stackoverflow.com/tags/selectonemenu/info (możesz uzyskać do niego dostęp, umieszczając na kółku znacznik '[selectonemenu]', który umieściłem pod twoim pytaniem, aż pojawi się czarne pole, a następnie klikając link * info *). – BalusC

Odpowiedz

6

Należy wykonać żądanie ajax po pierwszej zmianie wyboru h:selectOneMenu. To żądanie zaktualizuje wybrane pozycje w drugim h:selectOneMenu. Po zgłoszeniu ajax, musisz ponownie wygenerować drugi h:selectOneMenu, z zaktualizowanymi wartościami.

strona:

<h:selectOneMenu value="#{bean.selectedSubject}"> 
    <f:ajax listener="#{bean.changeSubject}" render="speciality_selection" /> 
    <f:selectItems value="#{bean.subject}" /> 
</h:selectOneMenu> 

<h:selectOneMenu id="speciality_selection" value="#{bean.selectedSpeciality}"> 
    <f:selectItems value="#{bean.subjectSpecialities}" /> 
</h:selectOneMenu> 

Zarządzane fasola:

public void changeSubject(){ 
    //Loads the specialities depending on the selected subject 
    subjectSpecialities = loadSpecialitiesForSubject(selectedSubject); 
} 
Powiązane problemy