锁定老帖子 主题:struts2避免重复提交
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (1)
|
|
---|---|
作者 | 正文 |
发表时间:2008-09-17
struts2避免重复提交 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> 声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |
发表时间:2008-09-22
提交之后自动使提交按钮disabled,不更简单吗?
|
|
返回顶楼 | |
发表时间:2008-09-23
按钮disabled,就不能提交数据了吗?
|
|
返回顶楼 | |
发表时间:2008-10-17
sech 写道 提交之后自动使提交按钮disabled,不更简单吗?
按F5的话呢? |
|
返回顶楼 | |
发表时间:2008-10-17
这东西不好。只能防止用户误操作,不能防止恶意提交。使用图片验证比较安全。
|
|
返回顶楼 | |
发表时间:2008-11-28
为什么 我的一直返回重复提交时的返回页 所有的与这个action想管的动作都返回错误页 我表单都还没有提交就返回了这个重复提交的错误提示页了
|
|
返回顶楼 | |
发表时间:2009-04-07
是啊!楼主,表单没提交就返回错误页了!怎么回事啊,安照你的做的啊~!
|
|
返回顶楼 | |
浏览 14272 次