Struts2的处理结果(四)

      ——PreResultListener监听器

1.PreResultListener是一个监听器接口,他在Action完成控制处理之后,系统转入实际物理视图资源之间被回调:

  Action——PreResultListener——物理视图资源

2.PreResultListener监听器可以由Action或者拦截器添加,添加PreResultListener的方法如下:

import com.opensymphony.xwork2.Action;
import com.opensymphony.xwork2.ActionContext;
import com.opensymphony.xwork2.ActionInvocation;
import com.opensymphony.xwork2.interceptor.PreResultListener;

public class Test2Action implements Action{
    //封装两个请求参数
    private String username;
    private String password;
    //setter、getter方法
    public void setUsername(String username){
        this.username = username;
    }
    public String getUsername(){
        return this.username;
    }
    public void setPassword(String password){
        this.password = password;
    }
    public String getPassword(){
        return this.password;
    }
    @Override
    public String execute() throws Exception {
        //获取ActionInvocation对象
        ActionInvocation invocation = ActionContext.getContext().getActionInvocation();
        //使用获取到的ActionInvocation对象的addPreResultListener()方法添加PreResultListener监听器
        //PreResultListener接口中有个beforeResult()方法,该方法将在系统转入物理视图资源前被调用
        invocation.addPreResultListener(new PreResultListener() {
            @Override
            //beforeResult()方法中传递的两个参数:
            //ActionInvocation:ActionInvocation实例
            //String:转入此方法的逻辑视图名称
            public void beforeResult(ActionInvocation arg0, String arg1) {
                // TODO Auto-generated method stub
                //可以在此方法中在返回Result前加入一个额外的参数
                //也可以在此方法中加入日志等
            }
        });
        return null;
    }

}

3.PreResultListener的作用,加入额外参数,实现日志。

05-07 15:55