Перехватчик токена Struts2 всегда дает сбой

Я пытаюсь сделать так, чтобы после отправки этой формы я не мог нажать кнопку «Назад», но с текущей конфигурацией я даже не могу загрузить страницу/форму. Кажется, я не могу понять, почему «invalid.token» всегда запускается, таким образом перенаправляя меня на index.jsp, независимо от того, что у меня есть тег токена в моей форме, как я и предполагал. Если я использую фильтр «excludeMethods» и исключаю «Просмотр», моя страница загружается, но я могу свободно нажимать кнопку «Назад», поэтому она все равно не работает должным образом. Я попытался переместить ссылку-перехватчик выше и ниже моего noLoginStack, но это не имеет значения. Основываясь на моей отладке, мой фактический класс java даже не попал, поэтому он не работает до этого. Что я делаю не так?

Мое объявление действия:

<action name="viewAppointmentLetter" class="edu.ucr.c3.rsummer.controller.instructor.ManageAppointmentLetters">
        <interceptor-ref name="noLoginStack"/>
        <interceptor-ref name="token" />

        <result name="invalid.token">/index.jsp</result>
        <result name="error" type="redirectAction">index.do</result>
        <result name="input">/instructor/assigned_appts.jsp</result>
        <result name="view">/instructor/assigned_appts.jsp</result>
        <result type="redirectAction">index.do</result>
    </action>

Мой назначенный_appts.jsp:

<s:form action="saveAppointmentLetter" onsubmit="return verifySubmit();">
      <s:token name="token" />

      .....
</s:form>

Если это какая-то подсказка, я всегда получаю это в своей консоли.

WARN  org.apache.struts2.util.TokenHelper  - Could not find token name in params.

person Raymond Holguin    schedule 28.02.2012    source источник


Ответы (2)


В struts2 порядок перехватчиков очень важен. вы должны следовать этому порядку.

<interceptor-ref name="token"/> 
<interceptor-ref name="noLoginStack"/>
person MohanaRao SV    schedule 29.02.2012
comment
Всегда лучше дать некоторое описание вашего ответа, так как это поможет другим понять, что вы пытаетесь передать. - person Umesh Awasthi; 29.02.2012
comment
К сожалению, я тоже пробовал это, и у меня все еще возникает та же проблема, какие-либо другие предложения? - person Raymond Holguin; 29.02.2012
comment
Не могли бы вы опубликовать полный журнал? - person MohanaRao SV; 01.03.2012

Используйте перехватчик TokenSession. Пришлось обрабатывать результат с помощью result name="invalid.token" в struts.xml в конкретном действии. Страница, с которой генерируется ваше действие, на этой странице вы должны написать тег <s:token> в заголовке

person MayurB    schedule 26.09.2012