2

prettyfaces リクエストを介してレンダリングされる xhtml ビューがあります。prettyfaces からのアクション マッピングが 2 回実行されるという問題が発生していますが、それは ui:include タグがある場合のみです。きれいな構成の例は次のようになります。

 <url-mapping id="testRedirector">
      <pattern value="/project/#{lookupBean.projectId}/#{lookupBean.cardNumber}" />
      <view-id value="/lookup.xhtml" />
      <action>#{myController.init}</action>
 </url-mapping>

.xhtml は次のようになります。

... 

<ui:include src="/header.xhtml">
    <ui:param name="this_tab_class" value="current"/>
</ui:include>

<h:panelGrid columns="4">
...

URL への要求時に、myController.init() のログ呼び出しが 2 回実行されていることがわかります。ui:include をコメントアウトすると、init は適切に 1 回だけ呼び出されます。prettyfaces url-mapping 要素で他の jsf フェーズ リスナーを試してみましたが、他のすべての列挙型では init() が呼び出されません。

私の質問は、RENDER_REDRAW フェーズを 2 回呼び出さずに、事前定義された header.xhtml または他の事前定義されたコンポーネントをページに含めるという同じ目標をどのように達成するのですか? それとも、これはきれいな顔に固有の問題ですか?

4

1 に答える 1

1

これは JSF のバグのようです。これは、PrettyFaces を含めない場合に発生しますか?

于 2012-02-16T05:52:31.567 に答える