strut2防止表单重复提交问题?
strut2防止表单重复提交标签<s:token></s:token>的使用配置!
因项目是用到零配置,所以配置用注解的!
我是这样配置的,第一次就跳转到token.jsp页面去了,大家看看那里错了,配置过到大虾们,贴出你到代码分享下,先谢过了!
Java code
@InterceptorRefs( { @InterceptorRef(value = "tokenSession",params={"includeMethods","save"}),@InterceptorRef(value = "crudStack")})
@Results({@Result(name = "invalid.token", location = "/common/token.jsp", type = "redirect")})
struts.xml
XML code
<interceptors>
<interceptor-stack name="crudStack">
<interceptor-ref name="store">
<param name="operationMode">AUTOMATIC</param>
</interceptor-ref>
<interceptor-ref name="paramsPrepareParamsStack" />
</interceptor-stack>
</interceptors>
------解决方案--------------------重复提交 你直接写个验证嘛.... 当提交成功弹个信息 《提交成功 返回到页面 这样问题不救解决了嘛
------解决方案--------------------刷新相当于重新提交数据,当然会重新执行一次删除。
如果要避免重新提交数据,一般是三种做法:
1、删除动作是弹出页面执行的(没东西让用户刷新了);
2、删除成功后做页面跳转(必须是浏览器端页面跳转,不能是服务器端的forward);
3、用Ajax提交删除动作(刷新并不管Ajax提交的东西)。
建议使用重定向。不要用默认的转发。
------解决方案--------------------<!-- 用户注册 -->
<action name="registerAction" class="lee.registerAction">
<!-- 拦截器 阻止重复提交 -->
<interceptor-ref name="token" />
<interceptor-ref name="defaultStack" />
<result name="invalid.token">/error.jsp</result>
<result>/index.jsp</result> <!-- 用户注册成功后跳转到系统首页 可以从那里进行登录 若失败 还在注册页面 -->
<result name="input">/register.jsp</result>
</action>
这是我以前做的一个项目里的 struts。xml文件里面的关于阻止重复提交的部分代码 你可以根据实际情况进行改动 我用到的是拦截器 你说的零配置 我不太懂 不过还是希望能给你帮助吧
------解决方案--------------------一共2部
1:struts.xml
<interceptor-stack name="user-submit">
<interceptor-ref name="tokenSession" />
<interceptor-ref name="addMemberAndAgent" />
</interceptor-stack>
<action name="addMember" class="agentAction" method="addMember" >
<result >/*.jsp</result>
<interceptor-ref name="user-submit" />
</action>
2:jsp.
<s:token/>