2

こんにちは私はstruts.xmlにこのようなものがあります

   <action name="LoginAction" class="controller.LoginAction">
                <result name="error">/Error.jsp</result>
                <result name="success">/Wizard.jsp</result>
    </action>

編集:

アクションでの実行が成功executeすると、次のページには、リクエストスコープを使用してアクセスするデータが含まれます。代わりに同じデータをセッションスコープに保存するにはどうすればよいですか?

オブジェクトがStrutsアクションHttpServletRequestのメソッドにパラメーターとして渡されることを読みました。オブジェクトを使用してデータをアタッチすることで、いつでもオブジェクトを取得できます。execute()HttpSessionrequest.getSession()

だから私がこのようなものを使っているならcontroller.LoginAction

public String execute(HttpServletRequest req) {
    ...
}

変更する必要がありstruts.xmlますか?がパラメータとして追加されたexecute場合は呼び出されません。HttpServletRequest

   <action name="LoginAction" class="controller.LoginAction">
                <result name="error">/Error.jsp</result>
                <result name="success">/Wizard.jsp</result>
    </action>

また、この方法でセッションを使用するのが最善の方法ですか?ストラット法に慣れようとしています。

4

1 に答える 1

3

SessionAwareインターフェイスを実装できます。

public class LoginAction extends ActionSupport implements SessionAware {
    private Map session;

    public String execute() {
        session.put("key", "value");
        // Plus any additional action code
    }

    // Plus setter (and optionally getter) for session map.
}

別の使用方法については、こちらActionContextで説明しています。

SessionAwareよりも優先されActionContextます。これに関するいくつかの議論があります:

于 2012-06-12T13:02:36.983 に答える