开发者

Session management in interceptors and action of struts 2 application

开发者 https://www.devze.com 2023-01-13 12:40 出处:网络
I am having problem with session management in struts2. I am setting an attribute in the session in an interceptor which is the default interceptor for my entire application. In my action I am impleme

I am having problem with session management in struts2. I am setting an attribute in the session in an interceptor which is the default interceptor for my entire application. In my action I am implementing SessionAware interface and grabbing the session as a Map. But the attribute which I set in the interceptor is not present in the session Map I have in my action. Did I miss in any default interceptor in my baseAppStack or any idea what I am missing?

My intercepter definition in stru开发者_JS百科ts.xml:

My intercepter code:

    HttpSession session =  request.getSession (true);
 params = (SessionParams)session.getAttribute(Constants.KEY_SESSION_PARAMS);

if (params == null) {

        //some code to populate params

session.setAttribute(Constants.KEY_SESSION_PARAMS, params); }

My Action code:

Map session = getSession();
SessionParams params = (SessionParams) session.get(Constants.KEY_SESSION_PARAMS);


Interceptor definition is missing my my previous post. Dont know why but I had it when I submitted it.

Interceptor definition:

    <interceptors>
        <interceptor name="baseInterceptor" class="com.interceptors.BaseInterceptor">
        </interceptor>

        <interceptor-stack name="baseAppStack">
            <interceptor-ref name="baseInterceptor" />
            <interceptor-ref name="defaultStack" />
        </interceptor-stack>
    </interceptors>
    <default-interceptor-ref name="baseAppStack"></default-interceptor-ref>


Sounds ok. Debug your interceptor code (a breakpoint or some log line) to check it is called. And/or copy the full code of your interceptor.

0

精彩评论

暂无评论...
验证码 换一张
取 消