Управление сессиями в перехватчиках и действиях распорок 2 приложения - PullRequest
0 голосов
/ 25 августа 2010

У меня проблема с управлением сеансами в Struts2.Я устанавливаю атрибут в сеансе в перехватчике, который является перехватчиком по умолчанию для всего моего приложения.В своем действии я реализую интерфейс SessionAware и получаю сеанс в виде карты.Но атрибут, который я установил в перехватчике, отсутствует в карте сеанса, которую я имею в своем действии.Я пропустил какой-либо перехватчик по умолчанию в моем baseAppStack или какую-то идею, что мне не хватает?

Определение моего перехватчика в struts.xml:

Код моего перехватчика:

    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);}

Код моего действия:

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

Ответы [ 2 ]

0 голосов
/ 27 августа 2010

Звучит нормально.Отладьте ваш код перехватчика (точку останова или некоторую строку журнала), чтобы проверить, что он вызывается.И / или скопируйте полный код вашего перехватчика.

0 голосов
/ 25 августа 2010

Определение перехватчика отсутствует в моем предыдущем посте. Не знаю почему, но у меня было это, когда я представил это.

Определение перехватчика:

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