`
wxb_j2ee
  • 浏览: 136160 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

struts2实现避免表单重复提交

阅读更多

一共2步:

首先,在要避免重复提交的表单中,加struts2标签 这句

<s:token></s:token>

 

只要是用来验证是否重复提交的,当加载进页面时,标签会生成一个唯一的隐藏字段,内容如下:

<input type="hidden" name="struts.token" value="FRD7878YJFTR574454HHHKOKJ" />

 
然后配置struts-xxx.xml

eg: 

<package name="XXX" namespace="/xxx" extends="struts-default"> 
   <action name="xxx_add" method="add" 
    class="com.xxx.action.xxxAction"> 
    <interceptor-ref name="defaultStack"/>//这句是默认的拦截器,有时不加会异常 
    <interceptor-ref name="token"/>//这句是防表单提交的token拦截器,用来判断是否重复提交的 
    <result name="invalid.token">/xxx/noback.jsp</result>//这句是如果有表单重复提交,就请求转发到重复提交信息页面 
   </action> 
   <action name="xxx_getById" method="getById" 
    class="com.xxx.action.xxxAction"> 
    <result name="getById">/xxx/xxx_getById.jsp</result> 
   </action> 
</package>

 

说明:struts-xxx.xml配置时,token拦截器,一定要根据需要加入响应的action中,不要全部action都加,我曾经遇到过,把全部action都加了,以为反正不影响什么,但是却出现错误了,在查询的时候,直接请求转发到重复提交信息页面,浪费了我好多时间。所以要根据需求及需要的加,上面我列出了2个action就是为了说明这个道理的,不需要的不加。当然也可以定义成全局的,需要时直接引用,这样的做法很好,在这里就不例举了~

 

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics