始める前に: Tomcat 6 で JSF 2.0 MyFaces を実行しており、このプロジェクトで既にいくつかのプライムフェイスを使用しています。
バッキング Bean に一連のパラメーターを設定する 3 つのフィルター処理されたドロップダウンを含むページがあります。これらのパラメーターは、ドロップダウンの下にページを含めるために使用されます。このページを含めるために ui:include を使用していますが、ui:include はライフサイクルごとに 1 回だけ実行されると確信しています。これは、ページが一度表示され、ドロップダウンが変更されても変更されないことを意味します。
これが私の見解の例です
<h:form>
<!-- dropdowns to build the route to the included page -->
<h:selectOneMenu>
<f:selectItems ... />
<f:ajax
event="change"
render=":formInclude"
execute=":formInclude"
listener="#{control.handledd1Change}"/>
</h:selectOneMenu>
<h:selectOneMenu>
<f:selectItems ... />
<f:ajax
event="change"
render=":formInclude"
execute=":formInclude"
listener="#{control.handledd2Change}"/>
</h:selectOneMenu>
<h:selectOneMenu>
<f:selectItems ... />
<f:ajax
event="change"
render=":formInclude"
execute=":formInclude"
listener="#{control.handledd3Change}"/>
</h:selectOneMenu>
</h:form>
<h:panelGrid id="formInclude">
<ui:include src="#{control.formName}.xhtml"/>
</h:panelGrid>
だから、JSFにページを動的に含める最も正しい方法は何だろうと思っていました。ui:include が 1 回だけ実行されることについて、私は正しいですか? ページを動的に含めるために使用できるものは他にありますか?