当前位置: 代码迷 >> Java Web开发 >> strut2防止表单重复提交有关问题
  详细解决方案

strut2防止表单重复提交有关问题

热度:3000   发布时间:2013-02-25 21:13:36.0
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/>