Spring源代码解析(四):Spring MVC - 编程入门网
andler.getHandler())) {
triggerAfterCompletion(mappedHandler, interceptorIndex, processedRequest, response, null);
return;
}
interceptorIndex = i;
}
}
//在执行handler之前,用HandlerAdapter先检查一下handler的合法性 :是不是按Spring的要求编写的。
HandlerAdapter ha = getHandlerAdapter(mappedHandler.getHandler ());
mv = ha.handle(processedRequest, response, mappedHandler.getHandler());
// 这里取出执行链中的Interceptor进行后处理
if (mappedHandler.getInterceptors() != null) {
for (int i = mappedHandler.getInterceptors().length - 1; i >= 0; i--) {
HandlerInterceptor interceptor = mappedHandler.getInterceptors()[i];
interceptor.postHandle(processedRequest, response, mappedHandler.getHandler(), mv);
}
}
}
........
// Did the handler return a view to render?
//这里对视图生成进行处理
if (mv != null && !mv.wasCleared()) {
render(mv, processedRequest, response);
}
.......
}
Spring源代码解析(四):Spring MVC(6)时间:2011-03-29 javaeye jiwenke我们很清楚的看到和MVC框架紧密相关的代码,比如如何得到和http请求相对应的执行 链,怎样执行执行链和怎样把模型数据展现到视图中去。 先看怎样取得Command对象,对我们来说就是Handler - 下面是getHandler的代码: 代码
如果在ServletContext中可以取得handler则直接返回,实际上这个handler是缓冲了 上次处理的结果 - 总要有第一次把这个handler放到ServletContext中去: 如果在ServletContext中找不到handler,那就通过持有的handlerMapping生成一个, 我们看到它会迭代当前持有的所有的 handlerMapping,因为可以定义不止一个,他们在定 义的时候也 |
凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢! |