Meine Anforderung ist wie folgt. Ich habe ein SelectMenu mit einigen Werten (Beispiele: Technik, Medizin, Recht usw.). Angenommen, ich wähle Engineering in der Dropdown-Liste aus, möchte ich ein weiteres Dropdown-Menü erstellen, das dynamisch mit Werten erstellt wurde, die sich auf Engineering beziehen (Beispiel: Elektronik, Computer, Elektrik usw.). Wie erreiche ich das in JSF 2.0?Hinzufügen von dynamischen Dropdown-Komponenten in JSF
5
A
Antwort
6
Sie müssen eine Ajax-Anfrage durchführen, wenn sich die Auswahl von h:selectOneMenu
ändert. Diese Anforderung aktualisiert die auswählbaren Elemente in der zweiten h:selectOneMenu
. Nach der Ajax-Anforderung müssen Sie die zweite h:selectOneMenu
erneut mit den aktualisierten Werten rendern.
Seite:
<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>
Managed Bean:
public void changeSubject(){
//Loads the specialities depending on the selected subject
subjectSpecialities = loadSpecialitiesForSubject(selectedSubject);
}
prüfen Sie unsere '[selectonemenu]' Wiki-Seite, um weitere Hinweise, wie die meisten dieser Komponenten zu erhalten: http: // stackoverflow.com/tags/selectonemenu/info (Sie können darauf zugreifen, indem Sie den Tag "[selectonemenu]", den ich unter Ihre Frage platziert habe, bewegen, bis eine schwarze Box erscheint und dann auf den Link * info * klickt). – BalusC