3

Spring Webflow を使用していますが、transition ==> 評価式を使用してアクセスされるメソッドで HttpSession にアクセスする必要があります。(私のフローを含むxmlファイルで)これまでのところ、実際にそれをメソッドに渡す方法をまだ見つけていません。flowrequestcontext を調べましたが、まだ方法が見つかりません。

4

4 に答える 4

9

RequestContext を渡せばすぐに渡す必要はないと思います。これを試すことができます:

public class MyAction extends MultiAction{      
    public Event myMethod(RequestContext context){
        HttpSession session = ((HttpServletRequest)context.getExternalContext().getNativeRequest()).getSession();
        ...
    }
}
于 2012-02-28T16:39:34.353 に答える
5

オブジェクトを(たとえばflowScopeから)セッションに挿入するには、これがうまくいきました:

<evaluate expression="externalContext.sessionMap.put('attributeName', flowScope.myObject)"/>
于 2013-10-24T11:49:47.780 に答える
3

HttpSessionフロー内でにアクセスするという非常によく似たニーズがありました。これが私がそれをした方法です:

まず、externalContext特別な EL 変数を見てください。

外部コンテキスト

次のいずれかが提供されます。

org.springframework.webflow.context.ExternalContext

ExternalContextインターフェイスは、オブジェクトを返すメソッドを提供しgetNativeRequest()ますHttpRequest。(少なくとも weblflow 2.0.x では)

Javadoc は次のとおりです。 http://static.springsource.org/spring-webflow/docs/2.0.x/javadoc-api/org/springframework/webflow/context/ExternalContext.html#getNativeRequest ()

つまり、次のようなものを使用して式を作成できるはずです。

<evaluate expression="externalContext.nativeRequest.session" result="flowScope.information"/>

簡単なテストとして、次のような式を使用できます。

expression="externalContext.nativeRequest.session.id"

セッションIDをメソッドに渡します。

もちろん、同様の EL を使用してセッションをメソッドなどに渡すこともできます。

于 2012-03-08T20:51:56.677 に答える