//-----------------------------------------jsp-----------------------------------------------
<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
<%@ taglib uri="/struts-tags" prefix="s" %>
<html>
<head>
<title>防止表达数据重复提交</title>
</head>
<body>
<form action="user!addUser.action">
username:
<input type="text" name="user.username" />
<!--
使用struts2提供的标签token
这里会在html页面中生成一个hidden 并产生一个与服务器端session中存在一个相同的值用于比较
-->
<s:token></s:token>
<input type="submit" value="submit" />
</form>
</body>
</html>
//-----------------------------------------struts.xml-----------------------------------------------
<struts>
<package name="interceptor" namespace="/" extends="struts-default">
<action name="input" class="com.struts2.action.InputAction">
<result>/addUser.jsp</result>
</action>
<action name="user" class="com.struts2.action.UserAction">
<result>/success.jsp</result>
<!--配置拦截器-->
<interceptor-ref name="defaultStack"></interceptor-ref>
<interceptor-ref name="token"></interceptor-ref>
<!--配置错误页面,指定name="invalid.token"-->
<result name="invalid.token">/error.jsp</result>
</action>
</package>
</struts>
//-----------------------------------------action-------------------------------------------------------
import com.opensymphony.xwork2.ActionSupport;
import com.struts2.dto.User;
/**
*UserAction
*/
public class UserAction extends ActionSupport{
private User user;
public String addUser()
{
System.out.println("-----------添加成功!-------------");
return this.SUCCESS;
}
public void setUser(User user) {
this.user = user;
}
}
import com.opensymphony.xwork2.ActionSupport;
/**
*InputAction
*/
public class InputAction extends ActionSupport{
public String execute() throws Exception {
// TODO Auto-generated method stub
return super.execute();
}
}