Spring MVC 学习笔记 四 Viewresol和View

Spring MVC使用ViewResolver来根据controller中返回的view名关联到具体的View对象。使用View对象来渲染返回值以生成最终的视图,如html,jsonpdf等。

Spring MVC中,通过在servlet context配置文件中配置的ViewResolver Bean对象来注册ViewResolver对象,其在spring mvc的dispatcherServlet中的使用过程其实和之前提到的HandlerMappingHanderAdapter类似。

DispatcherServlet初始化时,首先根据当前context中注册的Beans中实现了ViewResolver接口的Bean列表来生成ViewResolver对象列表,并根据这些ViewResolver中的order属性进行排序,如果没配置order属性则此ViewResolver的优先级最低。

HandlerAdapter调用完毕handler method返回view对象时,dispatcherServlet将根据当前已经注册了的ViewResolver列表的顺序去调用其中的resolveViewName方法,以根据viewName找到实际对应的View对象,并根据第一个返回的View对象中的render方法来生成最终的用户视图。

HandlerMappingHanderAdapter类似,DispatcherServlet也提供了参数来允许用户指定是否只加载自己的ViewResolver,当属性detectAllViewResolvers设置为false时,则spring mvc将查找名为viewResolverbean 来作为当前唯一的ViewResolver

<init-param> <param-name>detectAllViewResolvers</param-name> <param-value>false</param-value> </init-param>

 

 

UrlBasedViewResolverInternalResourceViewResolver

之前的例子中,为将返回的viewname映射到对应的jsp上,在servlet context 配置文件中是这么定义的

 

你可能感兴趣的:(spring mvc)