Session 拦截器中的会话管理和struts 2应用程序的操作

Session 拦截器中的会话管理和struts 2应用程序的操作,session,struts2,interceptor,struts-action,Session,Struts2,Interceptor,Struts Action,我在struts2中遇到会话管理问题。我正在侦听器中的会话中设置一个属性,它是整个应用程序的默认侦听器。在我的操作中,我实现了SessionAware接口,并将会话作为地图抓取。但是我在拦截器中设置的属性不存在于我在操作中拥有的会话映射中。我是否遗漏了baseAppStack中的任何默认拦截器,或者是否知道我遗漏了什么 struts.xml中的拦截器定义: 我的拦截器代码: if(params==null){ session.setAttribute(Constants.KEY_sess

我在struts2中遇到会话管理问题。我正在侦听器中的会话中设置一个属性,它是整个应用程序的默认侦听器。在我的操作中,我实现了SessionAware接口,并将会话作为地图抓取。但是我在拦截器中设置的属性不存在于我在操作中拥有的会话映射中。我是否遗漏了baseAppStack中的任何默认拦截器,或者是否知道我遗漏了什么

struts.xml中的拦截器定义:

我的拦截器代码:

if(params==null){

session.setAttribute(Constants.KEY_session_PARAMS,PARAMS); }

我的行动代码:

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

拦截器定义缺少我以前的帖子。我不知道为什么,但我在提交的时候就收到了

拦截器定义:

    <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>

听起来不错。调试您的拦截器代码(断点或某个日志行)以检查它是否被调用。和/或复制拦截器的完整代码。

拦截器定义:
Map session = getSession();
SessionParams params = (SessionParams) session.get(Constants.KEY_SESSION_PARAMS);
    <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>