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

struts2防止重复提交的有关问题

热度:353   发布时间:2016-04-17 01:00:44.0
struts2防止重复提交的问题
老问题了,网上一找一堆解决办法,我还是有些疑惑,求高手解答

我在前台页面点击“发布物品”,提交action去后台查询数据,返回到jsp。
由于加了拦截器用于防止重复提交,我在点发布物品后,会直接返回invalid.token值,然后跳到error.jsp

这应该怎么解决?

HTML code
<a href="goodsAction_enterGoodsAddAction">发布物品</a>


XML code
<!-- 物品管理 -->        <action name="goodsAction_*" class="com.campus.foreground.action.GoodsAction" method="{1}"><result name="invaild.token">error.jsp</result>            <result name="addSuccess">centerGoodsAdd3.jsp</result>            <result name="updateSuccess" type="chain" >goodsAction_retrieveGoodsAllAction</result>            <result name="error">error.jsp</result><interceptor-ref name="token"></interceptor-ref>                <interceptor-ref name="defaultStack"></interceptor-ref>        </action>


------解决方案--------------------
发布的时候,你重定向就可以了。
------解决方案--------------------
<s:token/>这个在jsp页面中有写么?
<s:token/>是写在form里面么?
------解决方案--------------------
<s:token/> 写在From里面

原理是每次提前要拿到一个新Token 值才不会报错。

------解决方案--------------------
不知道你做的这个对刷新页面重复提交起作用吗?
------解决方案--------------------
1、你可以在 “提交”按钮上做文章
  如:代码
  
JScript code
            var obj2=document.forma.isok; //点击提交后,按钮不可用            obj2.value="保存";            obj2.disabled=true; //点击提交后,按钮不可用
------解决方案--------------------
重复提交可以在页面上处理的。
你可以在js里写个函数。在返回处理结果的之前,将提交按钮disable掉。
------解决方案--------------------
我觉得你还是在发布成功的时候重定向到另外一个页面这样更棒。你这种方法用的不多。。。
------解决方案--------------------
探讨

发布的时候,你重定向就可以了。

------解决方案--------------------
探讨
重复提交可以在页面上处理的。
你可以在js里写个函数。在返回处理结果的之前,将提交按钮disable掉。

------解决方案--------------------
学习了
------解决方案--------------------
你redirect的试试呢
------解决方案--------------------
Java code
<s:token />标签防止重复提交,用法如下:第一步:在表单中加入<s:token /><s:form action="helloworld_other" method="post" namespace="/test">  <s:textfield name="person.name"/><s:token/><s:submit/>  </s:form>第二步:<action name="helloworld_*" class="cn.itcast.action.HelloWorldAction" method="{1}">       <interceptor-ref name="defaultStack" />        <interceptor-ref name="token" />        <result name="invalid.token">/WEB-INF/page/message.jsp</result>          <result>/WEB-INF/page/result.jsp</result>        </action>
------解决方案--------------------
  相关解决方案