看了网上说的有关struts2不重复刷新有很多,基本上都是在同一个页面中可以,那么我说下在一个页面中有一个按钮当点击后,到另一个页面。这个页面有许多列表记录,点击保存后再一次跳转到上一次页面中。那么在当前页面点击右键刷新,问题就在这了。
以前的
html:
<s:form action="topic" method="post">
<s:token name="topic.name"/>
</s:form>
struts.xml:
<action name="topic_*" method="{1}" class="topicAction">
<result name="success">/topic/manage_topic.jsp</result>
<result name="invalid.token" type="dispatcher">/common/noBack.jsp</result>
<interceptor-ref name="defaultStack" />
<interceptor-ref name="token">
<param name="includeMethods">addTopicElement</param>
</interceptor-ref>
<interceptor-ref name="token">
<param name="excludeMethods">default</param>
</interceptor-ref>
</action>
注意:
【1】:
<s:token>标签创建一个新的令牌值,并用你所指定的令牌名把令牌保存到session中。而这个令牌值是随即产生的经过加密的字符序列,不会重复。
其次需要为action配置TokenInterceptor或者TokenSessionStoreInterceptor拦截器。这两个拦截器都已经在struts-default.xml中定义,但没有包含在defaultStack拦截器栈中。
【2】:
<interceptor-ref name="token"/>和<interceptor-ref name="defaultStack"/>是两个拦截器的配置,目的是为了接收页面传入
的token令牌及参数,<result name="invalid.token">/common/noBack.jsp</</result>指当发现重复提交时,需要流转到的页面.
【3】:
excludeMethods指定要排除的方法,includeMehtods是要拦截的方法。
如果是用javascript来提交的话,看下边----
function selectA() {
var url = "relation_addRelationshipTopic.do?relation.rnId=<%=rn != null ? rn.getId().longValue() : -1%>&relation.selectRn="+selectRn+"&fresh=" + Math.random()+"";
var token = "struts.token.name=relation.token";
var token2 = "relation.token=";
token2 += document.getElementsByName("relation.token")[0].value;
url += "&" + token + "&";
url += token2;
location = url;
}
注:
<s:token name="relation.token"/>
它回自动的生成两个hidden,一个是struts.token.name,一个是reletion.token.
分享到:
相关推荐
struts2中对表单重复提交的处理方法;包括处理两种典型的表单重复提交的思路和方法
当用户将信息提交到服务器,服务器响应采用forward方式调转到下一个页面后,此时地址栏中显示的是上个页面的URL,若刷新当前页面,浏览器会将再次提交用户先前输入的数据,就会再次出现表单重复提交的问题。...
这里是Struts2 中放置表单重复提交的例子。
运用struts2解决表单的重复提交问题
struts2防止表单重复提交--重定向
struts2防止表单重复提交,利用struts的拦截器tokenSession,轻轻松松解决表单重复提交的问题。 附件为源代码,后台延迟了3秒,可直接在web服务器下部署运行,输入用户名和密码后,多点几次提交按钮,然后看控制台...
Struts2文件上传下载和表单重复提交问题
【原创】Struts2防止表单重复提交.doc
Struts表单重复提交问题 资源源于不但搜索,自由源于不但努力
struts token机制解决表单重复提交
防止表单重复提交 token eclipse项目
这个示例简单易懂,就是利用token过滤器
Servlet、Struts、SpringMVC对于表单重复提交的解决方案
主要讲解了在structs怎样通过Token令牌解决表单重复提交的问题。附带了擦参考项目。
详细介绍struts+token机制解决表单重复提交问题。附带相关代码
Struts2.0深入学习 命名空间,模型驱动,表单重复提交实例 博文链接:https://zmx.iteye.com/blog/463118
struts2防止重复登录,分享给大家学习一下。
struts数据回显、模型驱动、防止表单重复提交
详解struts2的token机制和cookie来防止表单重复提交 今天在做一个投票系统时要实现防止表单重复提交! 当时就想到了用struts2提供的token机制 struts2的token机制防止表单重复提交: 首先需要在提交的jsp页面(要...
本文档主要记录了struts2的属性驱动和模型驱动的区别,以及防止表单重复提交,另外增加了验证信息的正确位置的显示,希望对你有所帮助!