ResourceBundleViewResolver类详解 - ViewResolver系列六
ResourceBundleViewResolver和XmlViewResolver一样,也是继承自AbstractCachingViewResolver,但是它缓存的不是视图,这个会在后面有说到。和XmlViewResolver一样它也需要有一个配置文件来定义逻辑视图名称和真正的View对象的对应关系,不同的是ResourceBundleViewResolver的配置文件是一个属性文件,而且必须是放在classpath路径下面的,默认情况下这个配置文件是在classpath根目录下的views.properties文件,如果不使用默认值的话,则可以通过属性baseName或baseNames来指定。
配置
ResourceBundleViewResolver是根据proterties文件来找对应的视图来解析”逻辑视图“的,该properties文件默认是放在classpath路径下的views.properties文件,当然可以通过basename属性更改。
<bean class="org.springframework.web.servlet.view.ResourceBundleViewResolver"> <property name="basename" value="spring-views"></property> <property name="order" value="1"></property> </bean>
这时ResourceBundleViewResolver会从classpath路径下的spring-views.properties文件中寻找物理视图。
spring-views.properties
login.(class)=org.springframework.web.servlet.view.JstView login.url=/WEB-INF/jsp/login.jsp
properties文件里面存放的是key-value数据,从文件中可以看出逻辑视图与视图Bean也是以这种方式绑定的。
1、login表示处理器(controller)返回的逻辑视图
2、login.(class)表示视图Bean对应的视图类
3、login.url表示物理视图
注意要将这个“spring-views.properties”文件放到项目的class路径下。
Controller控制器
@RequestMapping(value="/page",method=RequestMethod.GET) public String getPage(Model model){ return "login"; }
当处理器(controller)返回”login“时,会在前台显示/WEB-INF/jsp/login.jsp的页面内容。
总结
当控制器返回一个名为“login”的视图时,ResourceBundleViewResolver将在“spring-views.properties”文件中查找以“login”起始的键,并返回相对应的视图URL“/WEB-INF/pages/login.jsp”给DispatcherServlet。
版权声明:本文为JAVASCHOOL原创文章,未经本站允许不得转载。