5. Struts2的监听器

l          Struts2的监听器,并没有多大用处,但也有必要知道 :

PreResultListener监听器,即在返回result之前监听action。这result即为每个action的业务方法的返回结果:所谓的结果返回之前,即将拦截器栈层层调用后,调用action的业务方法,其会返回一个字符串结果。此时这个监听器发挥作用。监听后再返回拦截器栈!监听器的使用要注册

自定义方法:

package edu.yzu.interceptor;

import com.opensymphony.xwork2.ActionInvocation;

import com.opensymphony.xwork2.interceptor.PreResultListener;

public class MyListener implements PreResultListener {

    public void beforeResult(ActionInvocation invocation, String resultCode) {

        System.out.println("result:  " + resultCode);

    }

}

在拦截器中注册监听器的方法

package edu.yzu.interceptor;

import com.opensymphony.xwork2.ActionInvocation;

import com.opensymphony.xwork2.interceptor.MethodFilterInterceptor;

@SuppressWarnings("serial")

public class ThirdInterceptor extends MethodFilterInterceptor {

    @Override

    protected String doIntercept(ActionInvocation actionInvocation) throws Exception {

        actionInvocation.addPreResultListener(new MyListener());

        System.out.println("do before in ThreeInterceptor!");

        String result= actionInvocation.invoke();

        System.out.println("do after in ThreeInterceptor!");

        return result;

    }

}

posted @ 2010-05-03 16:59  沉兮  阅读(1045)  评论(1编辑  收藏  举报