檢視和檢視解析器
阿新 • • 發佈:2021-01-21
開發工具與關鍵技術:Eclipse、Spring
作者:LJR
撰寫時間:2020年 12月 18 日
- 請求處理方法執行完成後,最終返回一個 ModelAndView 物件。
對於那些返回 String,View 或 ModeMap 等型別的 處理方法,Spring MVC 也會在內部將它們裝配成一個 ModelAndView 物件,它包含了邏輯名和模型物件的檢視 - Spring MVC 藉助檢視解析器(ViewResolver)得到最終 的檢視物件(View),最終的檢視可以是 JSP ,也可能是 Excel、JFreeChart 等各種表現形式的檢視
- 對於最終究竟採取何種檢視物件對模型資料進行渲染,處 理器並不關心,處理器工作重點聚焦在生產模型資料的工 作上,從而實現 MVC 的充分解耦
檢視的作用是渲染模型資料,將模型裡的資料以某種形式呈現給客 戶。
• 為了實現檢視模型和具體實現技術的解耦,Spring 在 org.springframework.web.servlet 包中定義了一個高度抽象的 View 介面:
• 檢視物件由檢視解析器負責例項化。由於檢視是無狀態的,所以他們 不會有執行緒安全的問題
檢視解析器的說法:
• SpringMVC 為邏輯檢視名的解析提供了不同的策略,可 以在 Spring WEB 上下文中配置一種或多種解析策略,並 指定他們之間的先後順序。每一種對映策略對應一個具體 的檢視解析器實現類。
• 檢視解析器的作用比較單一:將邏輯檢視解析為一個具體 的檢視物件。
resolveViewName(String,Locale);
• JSP 是最常見的檢視技術,可以使用 InternalResourceViewResolver 作為檢視解析器:
<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver"> <property name="prefix" value="/WEB-INF/jsp/" /> <property name="suffix" value=".jsp" /> </bean>
• 若專案中使用了 JSTL,則SpringMVC 會自動把檢視由 InternalResourceView 轉為 JstlView
• 若使用 JSTL 的 fmt 標籤則需要在 SpringMVC 的配置檔案中配置國際 化資原始檔
<bean id="user" name="user1" class="com.gx.pojo.User" scope="singleton" >
<property name="name" value="章三"></property>
<property name="car" ref="car"></property>
</bean>
• 若希望直接響應通過 SpringMVC 渲染的頁面,可以使用 mvc:viewcontroller 標籤實現:
<mvc:view-controller path="springmvc/testView" view-name="success"/>