2012-02-28 120 views
0

我试图做到这一点,所以一旦我提交这个表单,我不能点击后退按钮,但对于当前配置,我甚至无法加载页面/表单。我似乎无法弄清楚为什么“invalid.token”总是被触发,从而将我重定向到index.jsp,无论我的表单中有像我应该做的那样的令牌标记。如果我使用“excludeMethods”过滤器并排除查看然后我的页面加载,但我可以自由地点击后退按钮,所以它仍然无法正常工作。我尝试过移动interceptor-ref在noLoginStack的上下,但它没有什么不同。基于我的调试,我的实际java类甚至没有被击中,所以它在那之前失败了。我究竟做错了什么?Struts2令牌拦截器总是失败

我的行动宣言:

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

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

回答

1

得到这个在Struts2的顺序拦截器是非常重要的。你应该按照这个顺序。

<interceptor-ref name="token"/> 
<interceptor-ref name="noLoginStack"/> 
+0

它总是会更好地为您的答案提供一些描述,因为它可以帮助他人理解您想传达的内容 – 2012-02-29 02:25:18

+0

@Umesh thanks为您的建议。 – 2012-02-29 02:43:36

+0

不幸的是,我已经尝试过,我仍然得到同样的问题,任何其他建议? – 2012-02-29 17:08:58

0

使用TokenSession interceptor.Had由result name="invalid.token"在具体行动struts.xml的处理结果。 您在该页面上产生动作的页面必须在标题中写入<s:token>标记