拦截器如何获取当前方法的(形参参数值)
10 回复
package com.lx.demo.chain;
import com.lx.demo.processor.MyProcessor;
import org.nutz.mvc.*;
import org.nutz.mvc.impl.NutActionChain;
import org.nutz.mvc.impl.processor.*;
import java.util.ArrayList;
import java.util.List;
/**
* Created by Administrator on 2018/6/14.
*/
public class MyActionChainMaker implements ActionChainMaker {
@Override
public ActionChain eval(NutConfig config, ActionInfo ai) {
ai.setChainName();//使用这个确认@Chain 注解的value么
List<Processor> list = new ArrayList<>();
list.add(new UpdateRequestAttributesProcessor()); // 设置base/msg等内置属性
list.add(new EncodingProcessor()); // 设置编码信息@Encoding
list.add(new ModuleProcessor()); // 获取入口类的对象,从ioc或直接new
list.add(new ActionFiltersProcessor()); // 处理@Filters
list.add(new AdaptorProcessor()); // 处理@Adaptor
list.add(new MethodInvokeProcessor()); // 执行入口方法
list.add(new ViewProcessor()); // 对入口方法进行渲染@Ok
list.add(new MyProcessor());
for (Processor p : list) {
try {
p.init(config, ai);
} catch (Throwable throwable) {
throwable.printStackTrace();
}
}
// 最后是专门负责兜底的异常处理器,这个处理器可以认为是全局异常处理器,对应@Fail
Processor error = new FailProcessor();
try {
error.init(config, ai);
} catch (Throwable throwable) {
throwable.printStackTrace();
}
return new NutActionChain(list, error, ai);
}
}
添加回复
请先登陆