Мое требование таково. У меня есть selectMenu с некоторыми значениями (примеры: инженерия, медицина, право и т. д.). Предположим, если я выберу «Инженерия» в раскрывающемся списке, я хочу, чтобы другое раскрывающееся меню создавалось динамически со значениями, связанными с «Инженерией» (например, «Электроника», «Компьютеры», «Электротехника» и т. д.). Как мне добиться этого в JSF 2.0?
Добавление динамических раскрывающихся компонентов в JSF
Ответы (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>
Управляемый компонент:
public void changeSubject(){
//Loads the specialities depending on the selected subject
subjectSpecialities = loadSpecialitiesForSubject(selectedSubject);
}
person
Xtreme Biker
schedule
04.09.2013
[selectonemenu]
вики-страницу, чтобы узнать больше о том, как получить большинство этих компонентов: stackoverflow.com/tags/selectonemenu/info ( вы можете получить к нему доступ, наведя курсор на тег[selectonemenu]
, который я разместил под вашим вопросом, пока не появится черный ящик, а затем щелкнув ссылку info). - person BalusC   schedule 04.09.2013