?
This document uses PHP Chinese website manual Release
Portlet MVC中的顯示過程比Web MVC的復雜一點,為了復用所有Spring Web MVC里
的視圖技術,必須把
PortletRequest
/
PortletResponse
轉換到
HttpServletRequest
/
HttpServletResponse
,然后調用
View
的
render
方法。為此,DispatcherPortlet
使用了一個特殊的servlet:ViewRendererServlet
。
為了DispatcherPortlet
能夠顯示,
必須在web.xml
文件里為你的web應用聲明一個
ViewRendererServlet
的實例,如下:
<servlet> <servlet-name>ViewRendererServlet</servlet-name> <servlet-class>org.springframework.web.servlet.ViewRendererServlet</servlet-class> </servlet> <servlet-mapping> <servlet-name>ViewRendererServlet</servlet-name> <url-pattern>/WEB-INF/servlet/view</url-pattern> </servlet-mapping>
在實際執(zhí)行顯示時,DispatcherPortlet
這樣做:
把
WebApplicationContext
作為屬性綁定在請求上,
使用和DispatcherServlet
相同的
WEB_APPLICATION_CONTEXT_ATTRIBUTE
key。
把Model
和
View
對象綁定在請求上,使它們對
ViewRendererServlet
可見。
構造
PortletRequestDispatcher
對象,利用
映射到ViewRendererServlet
的/WEB-
INF/servlet/view
URL來執(zhí)行include
操作。
然后,ViewRendererServlet
能夠以合適的參數(shù)
調用View
的render
方法。
可以通過DispatcherPortlet
的viewRendererUrl
配置參數(shù)來修改ViewRendererServlet
的實際URL。