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

struts2之防止表单重复提交

2011-12-26 23:37 351 查看
struts.xml配置文件

<?xmlversion="1.0"encoding="UTF-8"?>
<!DOCTYPEstrutsPUBLIC
"-//ApacheSoftwareFoundation//DTDStrutsConfiguration2.0//EN"
"http://struts.apache.org/dtds/struts-2.0.dtd">

<struts>
<!--默认的视图主题-->
<constantname="struts.ui.theme"value="simple"/>

<!--struts2在防止表单重复提交的拦截中有2个,分别是:token,tokenSession。tokenSession继承token而来。
通常情况下,使用tokenSession客户端感觉会比较友好。-->
<!--如果重复提交,会跳转到error.jsp页面-->
<packagename="person"namespace="/test"extends="struts-default">
<actionname="token"class="com.ljq.action.PersonAction">
<interceptor-refname="defaultStack"/>
<interceptor-refname="token"/>
<!--如果重复提交,跳转到error.jsp页面-->
<resultname="invalid.token">/WEB-INF/page/error.jsp</result>
<result>/WEB-INF/page/message.jsp</result>
</action>
<actionname="tokenSession"class="com.ljq.action.PersonAction">
<interceptor-refname="defaultStack"/>
<interceptor-refname="tokenSession"/>
<!--如果重复提交,不会跳转到error.jsp页面-->
<resultname="invalid.token">/WEB-INF/page/error.jsp</result>
<result>/WEB-INF/page/message.jsp</result>
</action>
</package>
</struts>复制代码

struts.xml配置文件
[code]<?xmlversion="1.0"encoding="UTF-8"?>
<!DOCTYPEstrutsPUBLIC
"-//ApacheSoftwareFoundation//DTDStrutsConfiguration2.0//EN"
"http://struts.apache.org/dtds/struts-2.0.dtd">

<struts>
<!--默认的视图主题-->
<constantname="struts.ui.theme"value="simple"/>

<!--struts2在防止表单重复提交的拦截中有2个,分别是:token,tokenSession。tokenSession继承token而来。
通常情况下,使用tokenSession客户端感觉会比较友好。-->
<!--如果重复提交,会跳转到error.jsp页面-->
<packagename="person"namespace="/test"extends="struts-default">
<actionname="token"class="com.ljq.action.PersonAction">
<interceptor-refname="defaultStack"/>
<interceptor-refname="token"/>
<!--如果重复提交,跳转到error.jsp页面-->
<resultname="invalid.token">/WEB-INF/page/error.jsp</result>
<result>/WEB-INF/page/message.jsp</result>
</action>
<actionname="tokenSession"class="com.ljq.action.PersonAction">
<interceptor-refname="defaultStack"/>
<interceptor-refname="tokenSession"/>
<!--如果重复提交,不会跳转到error.jsp页面-->
<resultname="invalid.token">/WEB-INF/page/error.jsp</result>
<result>/WEB-INF/page/message.jsp</result>
</action>
</package>
</struts>
复制代码
PersonAction类
packagecom.ljq.action;

importjava.util.ArrayList;
importjava.util.List;

publicclassPersonAction{

privateStringname;

@SuppressWarnings("unchecked")
//观看控制台
//如果token生效则不会在控制台输出name的值,而会输出如下警告:2011-3-1420:45:32com.opensymphony.xwork2.util.logging.commons.CommonsLogger
//warn警告:FormtokenEDZ4S96RNDN5VD8B1CQTK6FTHIJUPC66doesnotmatchthesessiontokennull.
publicStringexecute(){
Listls=newArrayList();
ls.add(name);
for(inti=0;i<ls.size();i++){
System.out.println(ls.get(i));
}
return"success";
}

publicStringgetName(){
returnname;
}

publicvoidsetName(Stringname){
this.name=name;
}
}
复制代码
index.jsp表单页面
<%@pagelanguage="java"import="java.util.*"pageEncoding="UTF-8"%>
<%@tagliburi="/struts-tags"prefix="s"%>
<!DOCTYPEHTMLPUBLIC"-//W3C//DTDHTML4.01Transitional//EN">
<html>
<head>

<title>防止表单重复提交</title>
<metahttp-equiv="pragma"content="no-cache">
<metahttp-equiv="cache-control"content="no-cache">
<metahttp-equiv="expires"content="0">
</head>

<body>
<!--防止表单重复提交,记得在form表单里填上<s:token></s:token>-->
<!--action="token"、action="tokenSession"-->
<s:formaction="token"namespace="/test"method="post">
姓名:<s:textfieldname="name"/><s:token></s:token>
<inputtype="submit"value="发送"/>
</s:form>
</body>
</html>
复制代码
message.jsp返回成功页面
<%@pagelanguage="java"import="java.util.*"pageEncoding="UTF-8"%>
<%@tagliburi="/struts-tags"prefix="s"%>
<!DOCTYPEHTMLPUBLIC"-//W3C//DTDHTML4.01Transitional//EN">
<html>
<head>

<title>MyJSP'index.jsp'startingpage</title>
<metahttp-equiv="pragma"content="no-cache">
<metahttp-equiv="cache-control"content="no-cache">
<metahttp-equiv="expires"content="0">
</head>

<body>
<s:propertyvalue="name"/><br/>
<%=newDate()%>
</body>
</html>
复制代码
error.jsp表单重复提交提示页面
<%@pagelanguage="java"import="java.util.*"pageEncoding="UTF-8"%>
<%@tagliburi="/struts-tags"prefix="s"%>
<%
Stringpath=request.getContextPath();
StringbasePath=request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>

<!DOCTYPEHTMLPUBLIC"-//W3C//DTDHTML4.01Transitional//EN">
<html>
<head>
<basehref="<%=basePath%>">

<title>MyJSP'error.jsp'startingpage</title>

<metahttp-equiv="pragma"content="no-cache">
<metahttp-equiv="cache-control"content="no-cache">
<metahttp-equiv="expires"content="0">
<metahttp-equiv="keywords"content="keyword1,keyword2,keyword3">
<metahttp-equiv="description"content="Thisismypage">
<!--
<linkrel="stylesheet"type="text/css"href="styles.css">
-->

</head>

<body>
您已经提交了表单,请不要重复提交。
</body>
</html>
复制代码[/code]


                                            
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: