9

私は flow.xml に違いview-stateあります。これらの状態はすべて同じビューを持っています。ここで、文字列のみを含む変数を設定し、ビューファイルでそれを呼び出してコンテンツをカスタマイズしたいと考えています。
ここに私のファイルがあります:
flow.xml :ビューステートの例 2

<view-state id="rcpm" view="rc/rcmembers.xhtml">
    <on-entry>
        <evaluate expression="RCHtmlCache.getCommunityList('rcpm')"
            result="flowScope.members" />
    </on-entry>
</view-state>

<view-state id="rcarch" view="rc/rcmembers.xhtml">
   <on-entry>
        <evaluate expression="RCHtmlCache.getCommunityList('rcarch')"
            result="flowScope.members" />
    </on-entry>
</view-state>

このファイルには、ビューステート ID の値を持つ変数が必要です。たとえば、「rcarch」などです。

rcmembers.xhtml 変数を呼び出したいコードの一部

<p:panel id="panel" header="Memberslist of **Here comes the value of the variable">

私の問題を理解していただければ幸いです...

4

3 に答える 3

8

2つのオプションがあります。

まず、フロー定義レベルで定義し、ビューに直接公開できます。

<on-entry>
   <set name="flowScope.myView" value="flowRequestContext.currentState.id"/>
</on-entry>

または、フローコンテキストをコントローラーに渡して、そこで公開することもできます。

<evaluate expression="RCHtmlCache.getCommunityList(flowRequestContext)" result="flowScope.members"/>

コントローラ上:

public String getCommunityList(RequestContext context) {
   context.getFlowScope().put("myView", context.getCurrentState().getId());
   ...
}

お役に立てば幸い

于 2013-03-07T15:49:06.633 に答える
8

一部のユーザーは、この質問の後、文字列値で単純な変数を設定する方法を尋ねました。したがって、xpadroによる回答は非常に役立ちましたが、一部のユーザーはこの質問をクリックして、文字列値で単純な変数を設定する方法を知りました。そのため、ここにも回答を投稿したいと思います。xpadro
のコードを使用し、値を で囲んだい文字列に置き換えるだけです。'

<set name="viewScope.variable" value="'String you want'" />

xpadroが言ったように、setタグはon-entry...の中にとどまる
必要 がありScopeます。.html .

私はそれで誰かを助けることができることを願っています:)

于 2013-03-08T09:28:15.553 に答える
2

このビューステートのサブフローを作成してみませんか?

このようにして、変数の入力を取得し、どこからでも呼び出すことができます。複数の同一のビューステートを持つ必要はありません。

于 2013-03-07T15:18:43.477 に答える