1.表单中添加token标签
引入<%@taglib uri="/struts-tags" prefix="s" %>
提交表单前加<s:token></s:token>
<form method="post" action="${pageContext.request.contextPath}/room/update">
教室名称:<input type="text" name="room.name"> <br/>
教室位置:<input type="text" name="room.address"><br/>
<s:token></s:token>
<input type="submit" value="提交"/>
</form>
2、Struts配置全局拦截器
token和tokenSession
includeMethods 拦截哪些方法
excludesMethods 不拦截哪些方法
<?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>
<include file="student.xml"></include>
<include file="contact.xml"></include>
<include file="room.xml"></include>
<include file="teacher.xml"></include>
<include file="course.xml"></include>
<package name="all" namespace="/" extends="struts-default">
<!-- 配置执行的拦截器栈,增加令牌拦截器 -->
<interceptors>
<!--配置一个拦截器栈,里面包含自己定义的拦截器和defaultStack默认拦截器-->
<interceptor-stack name="myStack">
<interceptor-ref name="tokenSession">
<!-- 配置令牌拦截器,拦截的方法名,如果配置多个方法时,用","隔开 -->
<param name="includeMethods">update</param>
<!-- 定义被排除的方法名,也就是你action中不被这个拦截器拦截的方法名 -->
<param name="excludeMethods"></param>
</interceptor-ref>
<interceptor-ref name="defaultStack"/>
</interceptor-stack >
</interceptors>
<!--引用默认的拦截器(栈)-->
<default-interceptor-ref name="myStack">
</default-interceptor-ref>
<!--配置一个全局结果集-->
<global-results>
<result name="main">/main.jsp</result>
</global-results>
</package>
</struts>
3、让action处理类继承于ActionSupport
public class RoomAction extends ActionSupport
{
public String update()
{
if(room.getId()==0)
{
ServletActionContext.getContext().put("ADD", true);
}
dao.update(room);
return main();
}
}