3

Spring Webflow は初めてなので、1 つ (またはそれ以上) のフローについて質問があります。

後でフローに追加したいものに応じて、JSF でいくつかの facelets と 1 つの開始ページを構築したいと考えています。

例 application.xhtml:

`<ui:include src="start.xhtml">
<ui:param name="page1" value="page1.xhtml" />
<ui:param name="page2" value="page2.xhtml" />
<!-- page 3 should be ignored -->
<!-- <ui:param name="page3" value="page3.xhtml" /> -->
<ui:param name="page4" value="page4.xhtml" />
</ui:include>`

これで、ページが取得した ui:params を確認したい start-flow.xml があります。しかし、その方法がわからず、ウェブ上で同様のものを見つけることができませんでした. だから私は、これは間違った方法かもしれないと思います:-)

誰でも私を助けることができますか?

私の目標は、フローを作成することです (ハードコードされた facelets から独立しているため、ui:params のリストをチェックして、持っている facelets を確認し、次のように使用することができます。

`<view-state id="start" view="${flowScope.allViews[0]}">
<!-- assuming every facelet has a next-action -->
<transition on="next" to="${flowScope.allViews[1]}" />
</view-state>`
4

1 に答える 1

0

Spring Webflow で JSF の include/params のリストを取得することはできません。

それに最も近い方法は、FacesContext を取得して、ID で既知のコンポーネントを見つけようとすることです。

 boolean haveComponent1 = (FacesContext.getCurrentInstance().getViewRoot().findComponent("component1") != null);

Webflow に含まれるページのコンポーネント ID を知っていると仮定すると、次のようなことができます。

<decision-state id="doSomSink">
    <on-entry>
        <evaluate expression='FacesContext.getCurrentInstance().getViewRoot().findComponent("component1") != null)'  result="flowScope.haveComponent1" result-type="bool"></evaluate>
    </on-entry>
    <if test="flowScope.haveComponent1" then="doIt" else="doNothing"/>
</decision-state>
于 2013-02-01T20:58:45.613 に答える