登录页面:
<s:form action="againSubimt_success">
帐号<s:textfield name="userName"/><br>
密码<s:password name="passWord"/><br>
<s:submit value="提交"/>
<s:token/><!-- 生成的唯一标识 -->
</s:form>
Action:
public class AgainSubmitAction extends ActionSupport {
public String success() throws Exception {
return SUCCESS;
}
public String login(){
return "login";
}
}
error.jsp:
<body>
<s:actionerror/><!-- 表示action错误,字段错误无效的 -->
</body>
struts.xml:
<?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.devMode" value="true" />
<constant name="struts.custom.i18n.resources" value="com.xxc.resource.token"></constant><!-- 配置重提提交后提示的信息,这里token后不需要加properties -->
<package name="againSubmit" namespace="/" extends="struts-default">
<interceptors>
<interceptor-stack name="againSubmit">
<!-- 引入默认栈 -->
<interceptor-ref name="defaultStack"></interceptor-ref>
<!-- 引入防止重复提交的拦截器 -->
<interceptor-ref name="token">
<!-- includeMethods防止指定的方法重复提交,如果多个方法,则用逗号隔开 -->
<param name="includeMethods">success</param>
</interceptor-ref>
</interceptor-stack>
</interceptors>
<!-- 覆盖struts.default.xml中配置 -->
<default-interceptor-ref name="againSubmit"/>
<action name="againSubimt_*" class="com.xxc.againSubmit.AgainSubmitAction" method="{1}">
<result name="login">/WEB-INF/againSubmit/login.jsp</result>
<result name="success">/WEB-INF/againSubmit/success.jsp</result>
<result name="invalid.token">/WEB-INF/againSubmit/error.jsp</result>
</action>
</package>
</struts>
资源文件:(你重复提交了!)
token.properties:
struts.messages.invalid.token=\u4F60\u91CD\u590D\u63D0\u4EA4\u4E86\uFF01