【问题标题】:JSF select menu problemJSF选择菜单问题
【发布时间】:2011-05-04 05:41:34
【问题描述】:

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

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

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

请他

【问题讨论】:

    标签: jsf


    【解决方案1】:

    根据您的问题历史记录,您使用的是 Ajax4jsf/RichFaces。最好使用&lt;a4j:support&gt; 而不是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 必须引用同一个&lt;a4j:region&gt; 中的另一个&lt;h:selectOneMenu&gt; 的id。

    【讨论】:

      【解决方案2】:

      你必须为你的第一个selectOneMenu定义一个valueChangeListener:

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

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

      此外,您必须提交表单或重新渲染 section2 以在 section2 中显示更新的值。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-04-03
        • 1970-01-01
        • 1970-01-01
        • 2012-12-03
        • 2010-12-02
        • 2014-05-26
        相关资源
        最近更新 更多