W3Cschool
恭喜您成為首批注冊用戶
獲得88經(jīng)驗(yàn)值獎(jiǎng)勵(lì)
RequestToViewNameTranslator
接口可以在邏輯視圖名未被顯式提供的情況下,決定一個(gè)可用的邏輯視圖View
名。
DefaultRequestToViewNameTranslator
能夠?qū)⒄埱骍RL映射到邏輯視圖名上去,如下面代碼例子所示:
public class RegistrationController implements Controller {
public ModelAndView handleRequest(HttpServletRequest request, HttpServletResponse response) {
// 處理請求……
ModelAndView mav = new ModelAndView();
// 向Model中添加需要的數(shù)據(jù)
return mav;
// 請注意這里,沒有設(shè)置任何View對象或邏輯視圖名
}
}
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="
http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans.xsd">
<!-- 這個(gè)眾人皆知的bean將為我們自動生成視圖名 -->
<bean id="viewNameTranslator" class="org.springframework.web.servlet.view.DefaultRequestToViewNameTranslator"/>
<bean class="x.y.RegistrationController">
<!-- 如果需要,注入依賴 -->
</bean>
<!-- 請請求URL映射到控制器名 -->
<bean class="org.springframework.web.servlet.mvc.support.ControllerClassNameHandlerMapping"/>
<bean id="viewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<property name="prefix" value="/WEB-INF/jsp/"/>
<property name="suffix" value=".jsp"/>
</bean>
</beans>
請注意在handleRequest(...)
方法實(shí)現(xiàn)中,返回的ModelAndView
對象上自始至終未設(shè)置任何View
對象或邏輯視圖名。這是由DefaultRequestToViewNameTranslator
完成的,它的任務(wù)就是從請求的URL中生成一個(gè)邏輯視圖名。在上面的例子中,RegistrationController
與配置的ControllerClassNameHandlerMapping
一起使用的結(jié)果是,一個(gè)URL為<http://localhost/registration.html>
的請求,會經(jīng)由DefaultRequestToViewNameTranslator
生成并對應(yīng)到一個(gè)邏輯視圖名registration
上。該邏輯視圖名又會由InternalResourceViewResolver
bean解析到/WEB-INF/jsp/registration.jsp
視圖上。
你無需顯式地定義一個(gè)
DefaultRequestToViewNameTranslator
bean。如果默認(rèn)的DefaultRequestToViewNameTranslator
配置已能滿足你的需求,那么你無需配置,Spring Web MVC的DispatcherServlet
會為你實(shí)例化這樣一個(gè)默認(rèn)的對象。
當(dāng)然,如果你需要更改默認(rèn)的設(shè)置,那你就需要手動地配置自己的DefaultRequestToViewNameTranslator
bean。關(guān)于可配置屬性的一些詳細(xì)信息,你可以去咨詢DefaultRequestToViewNameTranslator
類詳細(xì)的java文檔。
Copyright©2021 w3cschool編程獅|閩ICP備15016281號-3|閩公網(wǎng)安備35020302033924號
違法和不良信息舉報(bào)電話:173-0602-2364|舉報(bào)郵箱:jubao@eeedong.com
掃描二維碼
下載編程獅App
編程獅公眾號
聯(lián)系方式:
更多建議: