只需要简单的两步即可完成,添加token标签和配置拦截器:(注:需要引用struts的<s>标签---><%@ taglib prefix="s" uri="/struts-tags"%>)
1:在jsp页面中的表单内添加<s:token></s:token>标签
1.jsp页面代码如下:
<%@ page language="java" contentType="text/html; charset=utf-8"%>
<%@ taglib prefix="s" uri="/struts-tags"%>
<!DOCTYPE html PUBLIC "-//W 3C //DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title>Insert title here</title>
</head>
<body>
<s:form action="login.action" method="post">
<s:token></s:token>
<s:textfield name="user.userName" label="用户名" />
<s:password name="user.password" label="密码" />
<s:submit />
</s:form>
</body>
</html>
2:struts.xml配置如下:
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.1//EN" "http://struts.apache.org/dtds/struts-2.1.dtd">
<struts>
<package name="default" extends="struts-default">
<action name="login" class="com.lin.action.Struts2_s_demo"
method="login">
<result name="success">MyJsp.jsp</result>
<!--
是在发生表单重复提交时,返回给用户提示信息的显示页面
-->
<result name="invalid.token">index.jsp</result>
<!--
是启用TokenInterceptor 如果表单重复提交,会提示The form has already been processed
or no token was supplied, please try again
-->
<interceptor-ref name="token"></interceptor-ref>
<interceptor-ref name="defaultStack"></interceptor-ref><!-- -->
</action>
</package>
</struts>
3.java页面如下:
package com.lin.action;
import com.opensymphony.xwork2.ActionSupport;
public class Struts2_s_demo extends ActionSupport {
private User user;
public User getUser() {
return user;
}
public void setUser(User user) {
this.user = user;
}
public String login() {
System.out.println("======================================="+user.getUserName());
System.out.println("======================================="+user.getPassword());
return SUCCESS;//
}
}