1

始める前に: 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 回だけ実行されることについて、私は正しいですか? ページを動的に含めるために使用できるものは他にありますか?

4

1 に答える 1

1

結局のところ、ドロップダウンを変更するたびに ui:insert を実行することができました。私がしなければならなかったのは、ajax を使用して実行し、再レンダリングすることだけでした。これは、私が自分の道を見つけるのを助けるために使用したページでした:

JSF 2.0 Faceletsを使用してXHTMLに別のXHTMLを含める方法は?

于 2012-06-26T14:39:29.373 に答える