在SpringMVC模式當中可以通過如下配置來支持多視圖解析
<!-- jsp jstl --> <bean id="JSPViewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver"> <property name="viewClass" value="org.springframework.web.servlet.view.JstlView"/> <property name="viewNames" value="*jsp" /> <property name="contentType" value="text/html; charset=utf-8"/> <property name="prefix" value="/" /> <property name="suffix" value="" /> <property name="order" value="1"></property> </bean>
<bean id="FMViewResolver" class="org.springframework.web.servlet.view.freemarker.FreeMarkerViewResolver"> <property name="viewClass" value="org.springframework.web.servlet.view.freemarker.FreeMarkerView"/> <property name="viewNames" value="*html" /> <property name="contentType" value="text/html; charset=utf-8"/> <property name="cache" value="true" /> <property name="prefix" value="/" /> <property name="suffix" value="" /> <property name="order" value="0"></property> </bean>
首先可以使用order屬性進行設置 系統首先按解析器的order值進行查找 首先使用FreeMarkerViewResolver解析器調用canHandle方法,判斷當前解析器對視圖是否能夠解析。如不能解析在依次調用。
最近被問到過幾次關於springmvc多視圖解析器解析的問題;總結一下。
假設我有兩個jsp:
1 WEB-INF/html/a.jsp
2 WEB-INF/report/b.jsp
且我配置了視圖解析器:
