SpringMVC中处理视图最终要的两个接口就是ViewResolver和View,ViewResolver的作用是将逻辑视图解析成物理视图,View的主要作用是调用其render()方法将物理视图进行渲染。
一般来说,对于SpringMVC控制器中的方法,无论是返回String、View或者是ModelAndView,SpringMVC在内部都会将返回结果封装成ModelAndView对象,然后返回给用户。
视图解析器是写在springmvc的配置文件中,如果在web-xml文件中没有显示配置这个xml文件的话会默认加载<servlet-name>-servlet.xml, 并且文件自动存放在WEB-INF下;如果显示配置了,如在xml中<servlet>配置了<param-value>/config/springmvc-config.xml</param-value>,那么你的配置文件将存放于/WebContent/config/下,配置文件名称为springmvc-config.xml。
需要注意的是:视图解析器的作用是只对Controller类中每个函数返回值那里的String类型前后加路径,而不对@RequestMapping处加路径,对@RequestMapping处无影响
SpringMVC视图解析器解析流程:
1、将SpringMVC控制器中的返回结果封装成一个ModelAndView对象。
2、通过SpringMVC中的视图解析器,使用ViewResolver对控制器返回的ModelAndView对象进行解析,将逻辑视图转换成物理视图。
3、调用View中的render()方法对物理视图进行渲染。