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
5
A
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);
}
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