Добавление динамических раскрывающихся компонентов в JSF

мое требование таково. У меня есть выбор с некоторыми ценностями (примеры: инженерия, медицина, право и т. д..,) . Предположим, если я выберу Engineering в раскрывающемся списке, я хочу, чтобы другое раскрывающееся меню создавалось динамически, которое имеет значения, связанные с Engineering (например: электроника, компьютеры, электрика и т. д..,). Как достичь этого в JSF 2.0 ?

1 ответов


вам нужно выполнить запрос ajax, когда первый h:selectOneMenuизменить выбор. Этот запрос обновит выбираемые элементы во втором h:selectOneMenu. После запроса ajax вы должны отобразить второй h:selectOneMenu снова, с обновленными значениями.

страницы:

<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-компонент:

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