一个简单的图一目了然
请求首先通过DispatcherServlet。servlet根据HandlerMapping,来处理请求,并根据请求,来找到Controller,Controller执行完毕后,发送一个ModelAndView,并告诉需要展示哪个视图。根据这个视图,servlet找到这个视图的ViewResolver,并由这个ViewResolver生成对应的view,并输出。
handler mappings 处理器影射器,它会根据请求,查找到实际的请求处理者
view resolvers 视图解析器
locale resolver 本地化解析器,提供国际化的支持
Theme resolver 主题解析器
multipart file 文件上传解析器
handler exception resolvers 异常处理器
返回类型
请求处理方法入参的可选类型
void
@RequestMapping("/welcome.do")
public void welcomeHandler() {
}
对应的逻辑视图名为“welcome”
String
@RequestMapping(method = RequestMethod.GET)
public String setupForm(@RequestParam("ownerId") int ownerId, ModelMap model) {
}
ModelMap
如下面的例子:
@RequestMapping("/vets.do")
public ModelMap vetsHandler() {
}
对应的逻辑视图名为“vets”,返回的 ModelMap 将被作为请求对应的模型对象,
可以在 JSP 视图页面中访问到。
ModelAndView
返回方式
1 使用无返回方法跳转,如果使用返回方法进行跳转的话,则会通过视图解析器进行以
prefix(前缀)+方法名+suffix(后缀)组成的页面文件名称.
2 使用一个返回的字符串方法作为跳转,使用字符串跳转的话好处就是在return的时候可
以自己指定返回的名字,JSP组成是prefix(前缀)+返回的字符串+suffix(后缀)
3 返回一个ModelAndView类型,使用setViewName方法则可以跳转到指定的页面.
参考:http://blog.sina.com.cn/s/blog_a43be7b001011lx9.html
http://blog.sina.com.cn/s/blog_4b5bc0110100zf11.html