1

メインの JSF ページに、この一見無害なコードがあります。

<a4j:outputPanel id="sidebarContainer">
     <a4j:include viewId="#{UserSession.currentSidebar}"/>
</a4j:outputPanel>

サイドバーは次のように変化します。

  1. jsFunction は、UserSession でページ (「sidebar2.jsp」など) を設定するバッキング Bean メソッドを呼び出します。

  2. jsFunction には「rerender='sidebarContainer'」が含まれているため、正しいページがサイドバーに読み込まれます。

JBoss 5 で Web アプリケーションを最初に起動したときに、jsFunction を呼び出してページを変更すると、sidebar2 が表示されますが、その下に元のサイドバー (sidebar1.jsp) が表示されます。

この最初の奇妙さの後、サイドバーの切り替えは問題なく機能します。何かご意見は??

4

1 に答える 1

0

問題と思われるのは、サイドバーを変更するために AJAX リクエストが呼び出されたのと同時に、別の AJAX リクエストが発生していることです。現在、いくつかの回避策を講じています。

RichFaces 4 alpha 2 のメモで、RichFaces4 は JSF 2 の f:ajax 機能を使用しているため、基本的に AJAX リクエストがシリアル化され、常に 1 つのみが進行中であることに気付きました。したがって、RichFaces 4 に移行すると、問題は解決するはずです。

于 2010-06-26T02:34:06.657 に答える