您的位置:首页 > 编程语言 > Java开发

8防止重复提交

2016-07-12 15:44 381 查看
struts2防止重复提交

Struts2中防止重复提交需要在<action >...</action>中增加下面的配置:

//使用系统的token拦截器

<interceptor-ref name="token"/>

//使用系统的默认拦截器

<interceptor-ref name="defaultStack"/>

//如果是重复提交需要转向的页面

<result name="invalid.token" >/error_chongfu.jsp</result>

例如:

<action name="testAdd" class="testAction" method="testAdd">

<interceptor-ref name="token"/>

<interceptor-ref name="defaultStack"/>

<result name="invalid.token" >/error.jsp</result>

<result name="success">/index.jsp</result>

<result name="error">/error.jsp</result>

</action>

然后再JSP导入struts2的标签库:<%@taglib prefix="s" uri="/struts-tags"%>,并在<form>...</form>中放置<s:token />。

其中<s:token />标签用来生成一个唯一的隐藏token标识并将此标识放到session中,在运行的时候生成的内容如下:

<input type="hidden" name="struts.token" value="C21ZWHEH0Q4B6FY15ZO5BFM1I9W8SIQH" />

例如:

<%@page contentType="text/html; charset=utf-8"%>

<%@taglib prefix="s" uri="/struts-tags"%>

<html>

<form id="productForm" method="post" action="${ctx }/testAdd.action">

请输入用户名称:<input type="text" name="roleName" value="mmmmm">

<s:token />

<input type="submit" value="提交">

</form>

</html>

这样当我们提交表单时就会有struts2的token拦截器拦截,token拦截器将会话token与请求token比较,如果重复提交则返回invalid.token结果并转到相应的页面。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  struts2.0