使用ResourceBundleViewResolver配置下bean就可以让视图解释器支持解析多种视图,而之前使用的UrlBasedViewResolver,就只支持解释单一类型的视图
ResourceBundleViewResolver通过读取X.properties文件,进行视图解析,这个文件位于classpath路径下,X的值是通过设置ResourceBundleViewResolver的basename属性来设定的
<?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:p="http://www.springframework.org/schema/p" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd"> <!-- 配置处理器映射 --> <bean class="org.springframework.web.servlet.handler.SimpleUrlHandlerMapping"> <property name="mappings"> <props> <!-- http://colo-pc:8080/SpringMVC01/a.do时就会自动跳转到a.jsp --> <prop key="a.do">a</prop> <prop key="b.do">b</prop> </props> </property> </bean> <bean id="a" class="org.springframework.web.servlet.mvc.ParameterizableViewController"> <property name="viewName" value="a"></property> </bean> <bean id="b" class="org.springframework.web.servlet.mvc.ParameterizableViewController"> <property name="viewName" value="b"></property> </bean> <bean class="org.springframework.web.servlet.view.ResourceBundleViewResolver"> <!-- 设定属性文件名为views --> <property name="basename" value="views"></property> </bean> </beans>
配置文件 views.properties
底下指明了,如果逻辑视图名与其中某项匹配,就跳转到相应的页面去
a.class=org.springframework.web.servlet.view.JstlView a.url=/WEB-INF/jsp/a.jsp b.class=org.springframework.web.servlet.view.JstlView b.url=/WEB-INF/jsp/b.jsp