struts2避免重复提交
来源:互联网 发布:网络电视机顶盒使用 编辑:程序博客网 时间:2024/04/29 13:59
struts2使用拦截器来检查表单是否重复提交,它采用同步令牌的方式来实现对表单重复提交的判断。
首先需要在表单中使用<s:token name="user.token"></s:token>
<s:token>标签创建一个新的令牌值,并用你所指定的令牌名把令牌保存到session中。而这个令牌值是随即产生的经过加密的字符序列,不会重复。
其次需要为action配置TokenInterceptor或者TokenSessionStoreInterceptor拦截器。这两个拦截器都已经在struts-default.xml中定义,但没有包含在defaultStack拦截器栈中。
在action中配置拦截器和在重复提交时,将要请求导向的结果视图。
<action name="register" class="com.zhaosoft.action.RegisterAction">
<!-- 配置异常映射,当RegisterAction抛出Exception异常时,向用户显示error.jsp页面 -->
<exception-mapping result="error" exception="java.lang.Exception"/>
<result name="invalid.token">/WEB-INF/pages/register.jsp</result>
<result name="input">/WEB-INF/pages/register.jsp</result>
<result name="success">/WEB-INF/pages/success.jsp</result>
<result name="error">/WEB-INF/pages/error.jsp</result>
<interceptor-ref name="defaultStack">
<param name="workflow.excludeMethods">default</param>
</interceptor-ref>
<interceptor-ref name="token">
<param name="excludeMethods">default</param>
</interceptor-ref>
</action>
注:excludeMethods指定要排除的方法。
在register.jsp页面中添加action级别的错误信息显示的标签:<s:actionerror/>
在form中添加<s:token>标签:<s:token name="user.token"></s:token>
最好为在资源文件中设置键struts.messages.invalid.token的本地化消息。
struts.messages.invalid.token=您已经提交了表单,请不要重复提交。
TokenSessionStoreInterceptor:使用TokenSessionStoreInterceptor拦截器同样能避免重复提交,TokenSessionStoreInterceptor集成自TokenInterceptor。使用TokenSessionStoreInterceptor将不会输出任何错误信息。如果token无效,请求被导向到invalid.token结果码映射的视图。
配置如下:
<interceptor-ref name="tokenSession">
<param name="excludeMethods">default</param>
</interceptor-ref>
- struts2避免重复提交
- struts2避免重复提交
- struts2避免重复提交
- Struts2.0 避免重复提交
- Struts2.0 避免重复提交
- Struts2.0 避免重复提交
- Struts2 避免重复提交 [Token]
- struts2避免表单重复提交
- (转)Struts2.0 避免重复提交
- Struts2实现避免表单重复提交
- Struts2 token的使用,避免表单重复提交
- struts2中使用Token避免表单重复提交
- Struts2框架学习之七:避免表单重复提交
- Struts2 是如何避免表单的重复提交的呢?
- 避免表单重复提交
- 避免表单重复提交
- 避免表单重复提交
- 如何避免重复提交
- 关于技术,关于论坛
- Ckeditor 3.01的使用体会
- C++成员函数的内存分配问题
- 安全保护项目: 一种分阶段的数据库基础架构保护方法 (第二阶段)
- c#sql server
- struts2避免重复提交
- C#中ref和out的使用小结
- JS将String转化为Date
- JQuery实现文本框自动补全(修改版)
- VS2005 setup 工程 注册com
- 塞班手机常用查询序列
- TC(HTB)+iptables作流量控制
- java中各种运算符
- C#--理解Thread.Sleep函数