JSF选择菜单问题

时间:2011-05-04 05:41:35

标签: jsf

我正在开发一个jsf,richfaces应用程序。我希望在选择第一个选项的基础上填充第二个选择菜单的值。如何实现这一点。

                     

  <h:outputText id="section1" value="Section" />
    <h:selectOneMenu  id="section2" value="#{content.sectionName}" >
        <f:selectItems value="#{content.sections}" />
  </h:selectOneMenu>

我想要的是: 我有两个表,一个用于分类,一个用于分区。 如果用户从下拉菜单中选择一个类别,则该部分的另一个下拉菜单应仅包含所选类别的值。

请他

2 个答案:

答案 0 :(得分:2)

根据您的问题历史记录,您使用的是Ajax4jsf / RichFaces。最好使用<a4j:support>代替valueChangeListener

<h:selectOneMenu id="section2" value="#{content.sectionName}" >
    <f:selectItems value="#{content.sections}" />
    <a4j:support event="onchange" action="#{content.changeSection}" reRender="otherMenuId" />
</h:selectOneMenu>

changeSection()方法中,您需要填充第二个菜单的选择项目。 otherMenuId必须引用同一id中其他<h:selectOneMenu>的{​​{1}}。

答案 1 :(得分:0)

您必须为第一个valueChangeListener定义selectOneMenu

<h:selectOneMenu id="select1" valueChangeListener="#{myBean.updateSections}">
    <f:selectItems value="#{myBean.sections1}" />
</h:selectOneMenu>

MyBean#updateSections内,您必须根据您所做的选择修改第二个selectOneMenu必须显示的SelectItem列表。

此外,您必须提交表单或重新呈现第2部分,以在第2部分中显示更新的值。