<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE struts PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
"http://struts.apache.org/dtds/struts-2.0.dtd">
<struts>
<constant name="struts.enable.DynamicMethodInvocation" value="false" />
<constant name="struts.devMode" value="false" />
<package name="user" extends="struts-default">
<interceptors>
<interceptor name="myfilter" class="com.MyFilterInterceptor">
<param name="name">方法拦截器</param>
</interceptor>
</interceptors>
<action name="user" class="com.UserAction">
<result name="user">/user.jsp</result>
<interceptor-ref name="myfilter">
<param name="name">改名后的拦截器</param>
<!--
<param name="excludeMethods">execute</param>
-->
</interceptor-ref>
</action>
<!-- Add actions here -->
</package>
</struts>
三个java
package com;
import java.util.Date;
import com.opensymphony.xwork2.ActionInvocation;
import com.opensymphony.xwork2.interceptor.MethodFilterInterceptor;
public class MyFilterInterceptor extends MethodFilterInterceptor
{
private String name;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
@Override
protected String doIntercept(ActionInvocation invocation) throws Exception {
// TODO Auto-generated method stub
System.out.println("-----------拦截器开始----------");
UserAction action=(UserAction)invocation.getAction();
long start=System.currentTimeMillis();
invocation.addPreResultListener(new UserPreResultListener());
System.out.println("deleteUser方法执行之前拦截");
String result=invocation.invoke();
System.out.println("拦截器动作:执行完删除用户deleteUser的时间为"+new Date());
long end=System.currentTimeMillis();
System.out.println("拦截器动作:执行action事件的时间是:"+(end-start)+"毫秒");
System.out.println("-----------拦截器结束----------");
return result;
}
}
package com;
import com.opensymphony.xwork2.ActionSupport;
public class UserAction extends ActionSupport
{
public String deleteUser()
{
System.out.println("执行deleteUser,删除了一条用户信息");
return "user";
}
@Override
public String execute() throws Exception
{
System.out.println("执行了execute方法");
return "user";
}
}
package com;
import com.opensymphony.xwork2.ActionInvocation;
import com.opensymphony.xwork2.interceptor.PreResultListener;
public class UserPreResultListener implements PreResultListener
{
public void beforeResult(ActionInvocation invocation, String result) {
// TODO Auto-generated method stub
System.out.println("返回的逻辑视图"+result);
}
}