0

春のコンテキストファイルで定義されたこのようなマップがあります。

<util:map id="myMap">
  <entry key="key1" value="myValue"/>
</util:map>

このようなWebflow内のJSPからこれにアクセスしたいと思います

<c:forEach var="item" items="${myMap}">
 <div>
  <c:out value="${item.key}"/>
 <div>
</c:forEach>

それ、どうやったら出来るの?春のコンテキストでマップを定義していますが、Webflow で取り上げられていません。

通常のJavaビューコントローラーにあれば問題なく動作しますが、Webflowにはビューステートを処理するXMLファイルがあり、変数をビューステートに渡す方法がわかりません。

4

2 に答える 2

0

このマップにアクセスするビュー ステートでは、スコープ変数をページ内でアクセスできるように設定できます。おそらくここでは、リクエスト スコープが最も理にかなっています。この特定のビュー リクエストの期間中のみ有効です。これを設定するは、反復するマップの Bean ID になります。(または、Bean のメソッドの出力である可能性もあります。)

<view-state id="someState" view="viewName">
    <on-render>
        <set name="requestScope.myMap" value="myMap"/>
    </on-render>
</view-state>

さまざまなスコープ (フラッシュ、フローなど) とさまざまなイベント (オンレンダリング、オンエントリなど) の例については、Spring Web フローのドキュメントを確認することをお勧めします。

于 2012-06-12T19:58:53.353 に答える
0

このアプローチは WebFlow とは関係ありませんが、マップがグローバル シングルトンを意図している場合は、org.springframework.web.context.support.ServletContextAttributeExporterを使用して Spring Bean を「アプリケーション スコープ」(別名 ServletContext) に取得できます。

これを行うと、投稿したように、任意の JSP が EL 経由でアクセスできます。

<bean class="org.springframework.web.context.support.ServletContextAttributeExporter">
    <property name="attributes">
        <map>
            <entry key="myMap" value-ref="myMap"/>
        </map>
    </property>
</bean>
于 2012-06-01T18:17:41.840 に答える