14.Web視圖

在前面說(shuō)Spring MVC請(qǐng)求流程的時(shí)候,提到需要將數(shù)據(jù)模型填充到對(duì)應(yīng)的視圖中,并且匹配到特定的視圖需要由視圖解析器來(lái)解析和渲染視圖,然后以view的形式返回到客戶(hù)端,呈現(xiàn)出用戶(hù)希望看到的形式。
接著看一下View Resolver和View的定義:


ViewResolver接口

當(dāng)給resolveViewName方法傳遞一個(gè)視圖名和Locale對(duì)象時(shí),他會(huì)返回一個(gè)View的實(shí)例。


View

View接口接收模型以及servlet的request和response對(duì)象,并將輸出結(jié)果渲染到response中。
InternalResourceViewer類(lèi)的定義:
InternalResourceViewResolver.png

下面是JstlView類(lèi),如果我們?cè)贘SP使用了JSTL標(biāo)簽,那么InternalResourceViewResolver會(huì)將視圖名解析為JstlView形式的JSP文件,從而將JSTL本地化和資源bundle變量暴露給JSTL格式化和信息標(biāo)簽。JtslView的具體定義:


JstlView類(lèi).png

配置InternalResourceViewResolver的方式
(1)Java代碼實(shí)現(xiàn)


Java方式實(shí)現(xiàn)配置InternalResourceViewResolver.png

(2)XML形式實(shí)現(xiàn)


Xml形式配置IntervalResourceViewResolver.png

ResourceBoundleMessageSource類(lèi)
它會(huì)從一個(gè)屬性文件中加載信息,這個(gè)屬性文件的名稱(chēng)是根據(jù)基礎(chǔ)名稱(chēng)來(lái)的。它會(huì)試圖在根路徑的屬性文件中解析信息,這些屬性文件的名稱(chēng)是根據(jù)這個(gè)基礎(chǔ)名稱(chēng)衍生得到的。
ReloadableResourceBoundleMessageSource類(lèi)
該類(lèi)可以重新加載信息屬性,不必重新編譯或者重啟應(yīng)用。
兩者的區(qū)別在于basename屬性設(shè)置為在應(yīng)用的外部查找,ResourceBoundleMessageSource是在類(lèi)路勁下查找。basename屬性可以設(shè)置為在類(lèi)路徑下(以classpath:為前綴),或者文件系統(tǒng)中(以file:為前綴)或者在Web應(yīng)用的根路徑下查找屬性。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容