InternalResourceViewResolver类详解 - ViewResolver系列五

InternalResourceViewResolver是URLBasedViewResolver的子类,所以URLBasedViewResolver支持的特性它都支持。在实际应用中InternalResourceViewResolver也是使用的最广泛的一个视图解析器。InternalResourceViewResolver会把返回的视图名称都解析为InternalResourceView对象,InternalResourceView会把Controller处理器方法返回的模型属性都存放到对应的request属性中,然后通过RequestDispatcher在服务器端把请求forword重定向到目标URL。

配置

<bean id="viewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver">
    <property name="prefix" value="/WEB-INF/jsp/" />
    <property name="suffix" value=".jsp" />
</bean>

当处理器返回“index”时,InternalResourceViewResolver解析器会自动添加前缀和后缀:/WEB-INF/jsp/index.jsp

优先级

<property name="order" value="10" />

order表示视图解析的优先级,数目越小优先级越大(即:0为优先级最高,所以优先进行处理视图),InternalResourceViewResolver在项目中的优先级必须设置为最低,也就是order要最大。不然它会阻碍其他视图解析器。

总结

1. InternalResourceViewResolver为UrlBasedViewResolver的子类,它将InternalResourceView作为缺省的View类,如果当前classpath中有jstl的jar包时则使用JstlView作为缺省的view来渲染结果。

2. InternalResourceViewResolver不管能不能解析它都不会返回null,也就是说它拦截了所有的逻辑视图,让后续的解析器得不到执行,所以InternalResourceViewResolver必须放在最后。

版权声明:本文为JAVASCHOOL原创文章,未经本站允许不得转载。