?
本文檔使用 php中文網(wǎng)手冊 發(fā)布
Spring為JSP和JSTL這些view層技術(shù)提供了幾個即取即用的解決方案。 使用JSP和JSTL的話,采用
WebApplicationContext
中定義的普通視圖解析器即可;當(dāng)然,還需要自行編寫一些實際做渲染的JSP頁面。
本章介紹了一些Spring提供的用于簡化JSP開發(fā)的額外特性。
與在Spring中采用的任何其他視圖技術(shù)一樣,使用JSP方式需要一個用來解析視圖的視圖解析器,
常用的是在WebApplicationContext
中定義的InternalResourceViewResolver
和
ResourceBundleViewResolver
。
<!-- the
ResourceBundleViewResolver
-->
<bean id="viewResolver" class="org.springframework.web.servlet.view.ResourceBundleViewResolver">
<property name="basename" value="views"/>
</bean>
# And a sample properties file is uses
(views.properties in WEB-INF/classes):
welcome.class=org.springframework.web.servlet.view.JstlView
welcome.url=/WEB-INF/jsp/welcome.jsp
productList.class=org.springframework.web.servlet.view.JstlView
productList.url=/WEB-INF/jsp/productlist.jsp
正如你所看到的,ResourceBundleViewResolver
需要一個屬性文件來定義view名稱到1) class 2) URL的映射。使用
ResourceBundleViewResolver
,可以只使用一個解析器來混用不同類型的視圖技術(shù)。
<bean id="viewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver"> <property name="viewClass" value="org.springframework.web.servlet.view.JstlView"/> <property name="prefix" value="/WEB-INF/jsp/"/> <property name="suffix" value=".jsp"/> </bean>
如上例所示, 用JSP時可以配置一個
InternalResourceBundleViewResolver
。 作為一個最佳實踐,我們強烈推薦你用
WEB-INF
下的一個目錄來存放JSP文件,從而避免被客戶端直接訪問。
使用JSTL時,必須使用一個特別的view類JstlView
,因為JSTL需要一些準(zhǔn)備工作,然后像i18N這樣的特性才能工作。