JSF

2013-09-04 27 views
5

'da dinamik aşağı açılan bileşenler eklemek şartım buna benzer. Bazı değerler içeren selectMenu'm var (Örnekler: Mühendislik, Tıp, Hukuk vb.). Açılır menüde Mühendislik'i seçersem, Mühendislik ile ilgili değerlere sahip başka bir açılır menü oluşturmak istiyorum (Örnek: Elektronik, Bilgisayar, Elektrik vb.). Bunu JSF 2.0'da nasıl başarabilirim?JSF

+0

nasıl bu bileşenlerin en iyi şekilde daha ipuçları için '[selectonemenu]' wiki sayfasını kontrol edin: http: // stackoverflow.com/tags/selectonemenu/info (siyah bir kutu görününceye kadar sorgunuzun altına koyduğum '[selectonemenu]' etiketini işaretleyerek ve ardından * info * linkini tıklayarak erişebilirsiniz. – BalusC

cevap

6

h:selectOneMenu 'un seçimi değiştiğinde ajax isteğinde bulunmanız gerekir. Bu istek, ikinci h:selectOneMenu'daki seçilebilir öğeleri güncelleyecektir. Ajax isteğinden sonra, güncellenmiş değerler ile ikinci h:selectOneMenu'u tekrar oluşturmalısınız.

Sayfa:

<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> 

Yönetilen fasulye:

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