struts2防止反復提交的辦法
<?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.3//EN" "http://struts.apache.org/dtds/struts-2.3.dtd"> <struts> <constant name="struts.enable.DynamicMethodInvocation" value="true" /> <constant name="struts.devMode" value="true" /> <package name="default" namespace="" extends="struts-default"> <!-- 這裏是攔截器的配置 --> <interceptors> <interceptor name="test" class="com.test.interceptor.TestInterceptor"></interceptor> <!-- 用於僅攔截某些方法 --> <interceptor name="function" class="com.test.interceptor.FunctionInterceptor"> <param name="includeMethods">add</param> </interceptor> <interceptor-stack name="myStack"> <interceptor-ref name="test"/> <interceptor-ref name="function"/> <interceptor-ref name="token"/> <interceptor-ref name="defaultStack"/> </interceptor-stack> </interceptors> <!-- 正確和錯誤的分別跳轉。input是在驗證失敗後會跳轉的頁面 --> <action name="data" class="com.test.action.ValideAction"> <interceptor-ref name="myStack"></interceptor-ref> <!-- 使用攔截器的動作 --> <result name="success">/result.jsp</result> <result name="input">/login.jsp</result> <result name="invalid.token">/token_error.jsp</result><!-- 防止反復提交的辦法 --> </action> <action name="FunctionInterceptor" class="com.test.action.ValideAction" method="add"> <interceptor-ref name="myStack"></interceptor-ref> <!-- 使用攔截器的動作 --> <result name="success">/result.jsp</result> <result name="input">/login.jsp</result> <result name="invalid.token">/token_error.jsp</result> </action> <action name="dele" class="com.test.action.ValideAction" method="dele"> <interceptor-ref name="myStack"></interceptor-ref> <!-- 使用攔截器的動作 --> <result name="success">/result.jsp</result> <result name="input">/login.jsp</result> <result name="invalid.token">/token_error.jsp</result> </action> </package> </struts>
上面是struts.xml中的代碼,基本的代碼是:
<result name="invalid.token">/token_error.jsp</result>
這樣一段。
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <%@ taglib uri="/struts-tags" prefix="s"%> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>Insert title here</title> </head> <body> <!-- 這個地方是用來顯示錯誤信息 --> <s:fielderror/> <form action="data.action" method="post"> 用戶名:<input type="text" name="username"><br> 密碼:<input type="password" name="password"><br> -------------------聯系方式----------------<br> 手機:<input type="text" name="contact.phone"><br> 地址:<input type="text" name="contact.address"><br> 郵箱:<input type="text" name="contact.email"><br> <s:token></s:token><!-- 防止反復提交。要加上這一段話 --> <input type="submit" name="ok"><br><br> <a href="FunctionInterceptor.action">測試FunctionInterceptor的add</a><br><br> <a href="dele.action">測試FunctionInterceptor的dele</a><br><br> </form> </body> </html>
在JSP頁面中,要加上這樣一段話,<s:token></s:token><!-- 防止反復提交。要加上這一段話 -->
就能夠防止反復提交了。
struts2防止反復提交的辦法