日期:2014-05-17  浏览次数:20791 次

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/>