天天看點

Spring MVC 中 如何解析視圖及視圖解析的詳細流程

springmvc 如何解析視圖

請求處理方法傳回值類型是

string

modelandview

view

springmvc都會獎其轉化為modelandview對象,再給viewresolver,最後變成視圖對象,如jsp、jstl、pdf等。

視圖和視圖解析器

請求處理方法執行完成後,最終傳回一個modelandview對象。對于那些傳回string,view和modemap等類型的處理方法,spring mvc 也會在内部将它們裝配成一個modelandview對象,它包含了邏輯名和模型對象的視圖。

springmvc 借助視圖解析器(viewresolver)得到最終的視圖對象(view),最終的視圖可以是jsp,也可能是excel、jfreechart等各種表現形式的視圖。

對于最終究竟采取何種視圖對象對模型資料進行渲染,處理器并不關心,處理器工作重點聚焦在生産模型資料的工作上,進而實作mvc的充分解耦。

視圖

視圖的作用是渲染模型資料,将模型裡的資料以某種形式呈現給客戶。

為了實作視圖模型和具體實作技術的解耦,spring在org.springframework.web.servlet包中定義了一個高度抽象的view接口。

Spring MVC 中 如何解析視圖及視圖解析的詳細流程

視圖對象由視圖解析器負責執行個體化。由于視圖是無狀态的,是以他們不會有線程安全問題。

視圖解析器

springmvc為邏輯視圖名的解析提供了不同的政策,可以在spring web 上下文中配置一中或多種解析政策,并制定他們之間的先後順序。每一種映射政策對應一個具體的視圖解析器實作類。

視圖解析器的作用比較單一:将邏輯視圖解析為一個具體的視圖對象。

所有的視圖解析器都必須實作viewresolver接口

Spring MVC 中 如何解析視圖及視圖解析的詳細流程

internalresourceviewresolver

jsp是最常見的視圖技術,可以使用internalresourceviewresolver作為視圖解析器。

Spring MVC 中 如何解析視圖及視圖解析的詳細流程

未完待續。。。