【问题标题】:RichFaces, a4j:ajax rerender after valueChangeListener callRichFaces,a4j:ajax 在 valueChangeListener 调用后重新渲染
【发布时间】:2012-02-03 06:51:58
【问题描述】:

请看我的 jsf:http://pastebin.com/yRLyZ9KJhttp://pastebin.com/hqYSU5eJ 问题是:首先重新渲染 loginPage,然后调用 #{loginBean.onLanguageSelect}。为什么? PS:对不起我的英语不好。

【问题讨论】:

    标签: ajax richfaces rerender


    【解决方案1】:

    同样的问题。我需要在 valueChangeListener 之后重新渲染。示例:

    <h:selectOneMenu valueChangeListener="#{back.change}" 
    onchange="submit()" value="#{item.value}" >
    <f:selectItems value="#{back.ordemItems}"/>
    <a4j:support event="onchange" reRender="parentPainel" />
    </h:selectOneMenu> 
    

    【讨论】:

      【解决方案2】:

      valueChangeListener 不是要走的路。我有同样的问题通过使用 onclick 解决了。 应该是:

      <h:selectOneMenu id="language" binding="#{loginBean.languageEntry}">
          <f:selectItems value="#{loginBean.languages}" />
          <a4j:support event="onclick" ajaxSingle="true" reRender="loginPage" actionListener="#{loginBean.onLanguageSelect}" />
      </h:selectOneMenu>
      

      【讨论】:

      • 其实这是要走的路。为什么每次单击 selectOneMenu 都需要调用 onLanguageSelect?问题在于 JSF 缺陷。处理嵌套表单的任何 ajax 事件都是错误的。
      猜你喜欢
      • 2012-02-25
      • 2011-03-12
      • 2023-04-09
      • 2012-11-20
      • 1970-01-01
      • 1970-01-01
      • 2011-01-10
      • 2013-01-03
      • 2011-10-08
      相关资源
      最近更新 更多