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 または他の事前定義されたコンポーネントをページに含めるという同じ目標をどのように達成するのですか? それとも、これはきれいな顔に固有の問題ですか?