0

私のアプリには高価なサービス メソッドがあり、その結果は 1) エラーをチェックし、2) URL を介して (つまり、JavaScript 変数ではなく) Java アプレットに提示する必要があります。メソッドの結果は文字列で、アプレットはファイルまたは URL からのデータをロードできます。

セッション変数を使用して問題に対処しようとしました:

def action1 = {
    def input = params['input']
    def result = expensiveServiceMethod( input )
    def failed = result == null
    session['result'] = result
    render( view:'view1', model:[failed:failed] )
}

def action2 = {
    def result = session['result']
    render( result )
}

次に、view1アプレットでは障害ステータスに応じて条件付きで表示され、その結果はaction2URL を介してアプレットからアクセスされます。

残念ながら、resultaction2近づいていnullます。resultない ことを確認しnullましたaction1。私はそれを間違っていますか?

代わりに
を使用したことに注意してください。ただし、アプレットを初期化するために追加の要求が行われます。flash

4

1 に答える 1

1

アプレットは、セッションCookieを自分で追跡することはできません。したがって、アプレットが2番目の要求をaction2に送信すると、セッションCookieはサーバーに返送されません。したがって、サーバーの場合、まったく新しいセッションのように、action1の間にセッションで設定したものはaction2では使用できなくなります。アプレット内のCookieを追跡し、電話をかけるときにサーバーに送り返す必要があります。

私はこれを行ったことがありませんが、クライアント側(アプレット)でApachecommonshttpクライアントを使用できると思います-Cookieの追跡をサポートしています

この質問を参照してください-

于 2012-06-21T09:27:29.497 に答える