1

アプリに struts2jquery グリッド プラグインを使用しています。セッションタイムアウトにインターセプターを使用しており、web.xml でセッションタイムアウトを構成していますが、問題はセッションタイムアウト後に login.jsp などの必要なページに移動しないことです。私の struts.xml は次のとおりです..

....

<interceptors>
        <interceptor name="SessionCheckInterceptor" class="com.org.SessionCheckInterceptor" />
        <interceptor-stack name="testSessionValidationStack">
            <interceptor-ref name="SessionCheckInterceptor" />
            <interceptor-ref name="defaultStack" />
        </interceptor-stack>    
    </interceptors>
...
<action name="mytable" class="com.org.MyTable">
        <interceptor-ref name="testSessionValidationStack"/>    
        <result name="success" type="json"/>            
        <result name="error">messages.jsp</result>
        <result name="sessionexpired">login.jsp</result>
    </action>
...

デバッグ中にインターセプター クラスに入ることができますが、ログイン ページにリダイレクトされません。私のコードの問題は何ですか?

私のインターセプターメソッドは..

public String intercept(ActionInvocation actionInvocation) throws Exception {
    ActionContext context = actionInvocation.getInvocationContext();
    Map<String, Object> sessionMap = context.getSession();
    log.info(" retrived session..." + sessionMap);
    if (sessionMap == null || sessionMap.isEmpty()
            || sessionMap.get("userName") == null) {
        log.info(" session expired...");

        addActionError(actionInvocation,"Session has been expired,please login again.");
        return "sessionexpired";
    }
    String actionResult = actionInvocation.invoke();
    return actionResult;
}
4

1 に答える 1

0

この投稿を変更または適応できるかどうかを確認してください。やろうとしていることは似ていると思います。

提案 必要に応じて、これを jsp で使用することもできます。これはメタ タグです。jsp のタグに追加しheadます。セッションがタイムアウトすると、自動的にsessionexpired.jspjsp に転送されます。 <meta http-equiv="refresh" content="${pageContext.session.maxInactiveInterval};url=sessionexpired.jsp" />

于 2012-07-20T07:33:52.417 に答える