码迷,mamicode.com
首页 > 其他好文 > 详细

Struts2源码分析(一) 一一一 ModelDrivenInterceptor

时间:2015-05-03 19:02:26      阅读:138      评论:0      收藏:0      [点我收藏+]

标签:modeldrivenintercept   struts2   

			ModelDrivenInterceptor的核心源码

【说明】 ModelDrivenInterceptor是默认的拦截器链(struts-default)的一部分,当一个请求经过ModelDrivenInterceptor的时候,它会判断当前要调用的Action对象是否实现了ModelDriven接口,	如果实现了这个接口,则调用getModel()方法,并把返回值压入ValueStack。

// 核心代码:
public class ModelDrivenInterceptor extends AbstractInterceptor {

	@Override
    	public String intercept(ActionInvocation invocation) throws Exception {
        	Object action = invocation.getAction();
		
		// 如果action实现了ModelDriven接口,则执行下面的代码
        	if (action instanceof ModelDriven) {
			// 把action强转为ModelDriven
           	 	ModelDriven modelDriven = (ModelDriven) action;
			// 获得值栈
            		ValueStack stack = invocation.getStack();
			// 获得model
            		Object model = modelDriven.getModel();
            		if (model !=  null) {
				// ***** 把获得的model压入ValueStack的对象栈(Value Stack Contents)中 *****
            			stack.push(model);
            		}
        	}
        	return invocation.invoke();
    	}
}


Struts2源码分析(一) 一一一 ModelDrivenInterceptor

标签:modeldrivenintercept   struts2   

原文地址:http://blog.csdn.net/wodewutai17quiet/article/details/45458537

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!