使用ResourceBundleViewResolver配置下bean就可以讓視圖解譯器支援解析多種視圖,而之前使用的UrlBasedViewResolver,就只支援解釋單一類型的視圖
ResourceBundleViewResolver通過讀取X.properties檔案,進行視圖解析,這個檔案位於classpath路徑下,X的值是通過設定ResourceBundleViewResolver的basename屬性來設定的
<?xml version="1.0" encoding="UTF-8"?><beansxmlns="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.JstlViewa.url=/WEB-INF/jsp/a.jspb.class=org.springframework.web.servlet.view.JstlViewb.url=/WEB-INF/jsp/b.jsp