在JSF中添加动态下拉组件

时间:2013-09-04 09:07:49

标签: jsf jsf-2 selectonemenu

我的要求是这样的。我有一个带有一些值的selectMenu(例如:工程,医学,法律等......)。假设如果我在下拉列表中选择工程,我想要另一个动态创建的下拉菜单,其中包含与工程相关的值(例如:电子,计算机,电气等......)。我如何在JSF 2.0中实现这一目标?

1 个答案:

答案 0 :(得分:7)

首次h:selectOneMenu选择更改时,您需要执行ajax请求。此请求将更新第二个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);
}