springMVC中的view視圖詳細解析
Spring MVC中的視圖是view接口,視圖的作用是渲染數(shù)據(jù),將模型model中的數(shù)據(jù)展示給用戶。
springMVC視圖的種類很多,默認有轉(zhuǎn)發(fā)視圖和重定向視圖。
當工程引入jstl的依賴,轉(zhuǎn)發(fā)視圖會自動轉(zhuǎn)換為jstlView,若使用的視圖技術(shù)為Thymleaf,在springMVC的配置文件中配置了Thymleaf的視圖解析器,由此視圖解析器解析之后所得到的是ThymleafView。
1、ThymleafView
當控制器方法總所設(shè)置的視圖名稱沒有任何前綴時,此時的視圖名稱會被springMVC配置文件中所配置的視圖解析器解析,視圖名稱拼接視圖前綴和視圖后綴所得到的路徑,會通過轉(zhuǎn)發(fā)的方式實現(xiàn)跳轉(zhuǎn)。
@RequestMapping("/testHello") public String testHello(){ return "hello"; }
2、轉(zhuǎn)發(fā)視圖
springMVC中默認的轉(zhuǎn)發(fā)視圖是InternalResourceView
springMVC中創(chuàng)建轉(zhuǎn)發(fā)視圖的情況:
當控制器方法中設(shè)置的視圖名稱為“forward:”為前綴時,創(chuàng)建InternalResourceView視圖,此時的視圖名稱不會被springMVC配置文件中所配置的視圖解析器解析,而是會將前綴“forward:”去掉,剩余部分作為最終路徑通過轉(zhuǎn)發(fā)的方式實現(xiàn)跳轉(zhuǎn)。
例如:“forward:/”“forward:/employee”
@RequestMapping("/testForward") public String testForward(){ return "forward:/testThymeleafView"; }
3、重定向視圖
springMVC中默認的重定向視圖是RedirectView
當控制器方法中所設(shè)置的視圖名稱為“redirect:”為前綴時,創(chuàng)建RedirectView視圖,此時的視圖名稱不會被springMVC配置文件中所配置的視圖解析器解析,而是會將前綴“redirect:”去掉,剩余部分作為最終路徑通過重定向的方式實現(xiàn)跳轉(zhuǎn)。
例如:“redirect:/”“redirect:/employee”
@RequestMapping("/testRedirect") public String testRedirect(){ return "redirect:/testHello"; }
注:重定向視圖在解析時,會先將redirect:前綴去掉,然后會判斷剩余部分是否以/開頭,若是則會自動拼接上下文路徑
4、視圖控制器view-controller
當控制器方法中,僅僅用來實現(xiàn)頁面跳轉(zhuǎn),即只需要設(shè)置視圖名稱時,可以將處理器方法使用view-controller標簽進行表示
解釋:在當前請求映射所對應(yīng)的控制器方法中,沒有其他的請求過程的處理,只需要設(shè)置一個視圖名稱的時候,就可以使用view-controller
在springMVC.xml文件中添加配置
<!--path:設(shè)置處理的請求地址 view-name:設(shè)置請求地址所對應(yīng)的視圖名稱 --> <mvc:view-controller path="/" view-name="index"></mvc:view-controller> <mvc:view-controller path="/test_view" view-name="test_view"></mvc:view-controller> <mvc:view-controller path="/test_rest" view-name="test_rest"></mvc:view-controller>
注:當springMVC中設(shè)置任何一個view-controller時,其他控制器中的請求映射將全部失效,此時需要在springMVC的核心配置文件中設(shè)置開啟MVC注解驅(qū)動的標簽:
<!--開啟MVC的注解驅(qū)動,可以讓其他控制器中的請求映射重新實現(xiàn)效果--> <mvc:annotation-driven />
到此這篇關(guān)于springMVC中的view視圖的文章就介紹到這了,更多相關(guān)springMVC view視圖內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
客戶端Socket與服務(wù)端ServerSocket串聯(lián)實現(xiàn)網(wǎng)絡(luò)通信
這篇文章主要為大家介紹了客戶端Socket與服務(wù)端ServerSocket串聯(lián)實現(xiàn)網(wǎng)絡(luò)通信的內(nèi)容詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助2022-03-03基于Zookeeper實現(xiàn)服務(wù)注冊和服務(wù)發(fā)現(xiàn)功能
無論是采用SOA還是微服務(wù)架構(gòu),都需要使用服務(wù)注冊和服務(wù)發(fā)現(xiàn)組件,本文將基于 Zookeeper 實現(xiàn)服務(wù)注冊和服務(wù)發(fā)現(xiàn)功能,如果跟我一樣有同樣的困惑,希望可以通過本文了解其他組件如何使用 Zookeeper 作為注冊中心的工作原理2023-09-09Java使用jdbc連接MySQL數(shù)據(jù)庫實例分析
這篇文章主要介紹了Java使用jdbc連接MySQL數(shù)據(jù)庫,結(jié)合實例形式分析了Java基于jdbc鏈接mysql的相關(guān)配置及工具類的定義相關(guān)操作技巧,需要的朋友可以參考下2018-07-07mybatis 實現(xiàn)多條update同時執(zhí)行
這篇文章主要介紹了mybatis 實現(xiàn)多條update同時執(zhí)行,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2021-01-01intellij idea 2021.2 打包并上傳運行spring boot項目的詳細過程(spring boot 2
這篇文章主要介紹了intellij idea 2021.2 打包并上傳運行一個spring boot項目(spring boot 2.5.4),本文通過圖文并茂的形式給大家介紹的非常詳細,需要的朋友可以參考下2021-09-09簡單介紹區(qū)分applet和application的方法
applet和application都是Java語言編寫出來的應(yīng)用程序,本文簡單介紹了二者的不同之處,需要的朋友可以參考下2017-09-09