Struts2 <s:token>标签

1、原理:


【1】:<s:token>标签创建一个新的令牌值,并用你所指定的令牌名把令牌保存到session中。而这个令牌值是随即产生的经过加密的字符序列,不会重复。

【2】:<result name="invalid.token">/common/noBack.jsp</</result>指当发现重复提交时,需要流转到的页面.

【3】:为action配置TokenInterceptor或者TokenSessionStoreInterceptor拦截器。这两个拦截器都已经在struts-default.xml中定义,但没有包含在defaultStack拦截器栈中。 <interceptor-ref name="token"/>和<interceptor-ref name="defaultStack"/>是两个拦截器的配置,目的是为了接收页面传入的token令牌及参数,其中<interceptor-ref name="token"/>标示启用TokenInterceptor 如果表单重复提交,会提示The form has already been processed or no token was supplied, please try again。修改国际化文件struts.messages.invalid.token 的键值,提供自己定制的错误信息。比如:struts.messages.invalid.token= 您已经提交了表单,请不要重复提交。

 

2、具体实现:

表单

<s:form action="register" method="post"> 
<s:token/>
</s:form>

 
struts配置文件

<action name="register" class="org.sunxin.struts2.action.RegisterAction"> 
<result name="input">/pages/register.jsp</result> 

<!-- 视图invalid.tokenw为不刷新的页面或action,如果是action需要添加type="redirectAction" -->
 <result name="invalid.token">/pages/register.jsp</result> 
<interceptor-ref name="token"/> 
<interceptor-ref name="defaultStack"/>
</action>

 

3、疑问:

拦截器token和tokenSession到底有什么区别,知情者请留言,不胜感激

为什么我同事用tokenSession好用,我的不好用

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值