2013-09-04 9 views
5

Il mio requisito è simile a questo. Ho un selectMenu con alcuni valori (esempi: ingegneria, medicina, legge ecc.,). Supponiamo che se seleziono Engineering nel menu a tendina, voglio un altro menu a discesa creato dinamicamente che abbia valori relativi a Engineering (Esempio: Elettronica, Computer, Electrical ecc.,). Come ottengo ciò in JSF 2.0?Aggiunta di componenti dinamici a discesa in JSF

+0

informazioni controlla [selectonemenu] '' pagina wiki per ulteriori suggerimenti su come ottenere la maggior parte di questi componenti: http: // stackoverflow.com/tags/selectonemenu/info (puoi accedervi posizionando il tag '[selectonemenu]' che ho inserito sotto la tua domanda fino a quando non compare una casella nera e poi fai clic sul link * info *. – BalusC

risposta

6

È necessario eseguire una richiesta Ajax al primo cambio di selezione di h:selectOneMenu. Questa richiesta aggiornerà gli elementi selezionabili nel secondo h:selectOneMenu. Dopo la richiesta Ajax, è necessario eseguire nuovamente il rendering del secondo h:selectOneMenu con i valori aggiornati.

Pagina:

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

bean gestito:

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