SpringMVC視圖作用詳解
SpringMVC中的視圖是View接口,視圖的作用渲染數(shù)據(jù),將模型Model中的數(shù)據(jù)展示給用戶
SpringMVC視圖的種類很多,默認有轉(zhuǎn)發(fā)視圖和重定向視圖
當工程引入jstl的依賴,轉(zhuǎn)發(fā)視圖會自動轉(zhuǎn)換為JstlView
若使用的視圖技術(shù)為Thymeleaf,在SpringMVC的配置文件中配置了Thymeleaf的視圖解析器,由此視 圖解析器解析之后所得到的是ThymeleafView
一、ThymeleafView
當控制器方法中所設(shè)置的視圖名稱沒有任何前綴時,此時的視圖名稱會被SpringMVC配置文件中所配置的視圖解析器解析,視圖名稱拼接視圖前綴和視圖
后綴所得到的最終路徑,會通過轉(zhuǎn)發(fā)的方式實現(xiàn)跳轉(zhuǎn)
<a th:href="@{/test/view/thymeleaf}" rel="external nofollow" >測試SpringMVC的視圖ThymeleafView</a>
@Controller public class TestViewController { @RequestMapping("/test/view/thymeleaf") public String testThymeleafView() { return "success"; } }
二、轉(zhuǎn)發(fā)視圖
通過ThymeleafView轉(zhuǎn)發(fā)是可以進行頁面渲染的,但是通過InternalResourceView轉(zhuǎn)發(fā)的頁面跳轉(zhuǎn)只能實現(xiàn)一個簡單的轉(zhuǎn)發(fā),頁面中的Thymeleaf語法解析不了。所以這種方式我們不常用
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"
<a th:href="@{/test/view/forward}" rel="external nofollow" >測試SpringMVC的視圖InternalResourceView</a>
@RequestMapping("/test/view/forward") public String testInternalResourceView() { return "forward:/test/model"; }
三、重定向視圖
SpringMVC中默認的重定向視圖是RedirectView
當控制器方法中所設(shè)置的視圖名稱以"redirect:"為前綴時,創(chuàng)建RedirectView視圖,此時的視圖名稱不 會被SpringMVC配置文件中所配置的視圖解析器解析,而是會將前綴"redirect:"去掉,剩余部分作為最終路徑通過重定向的方式實現(xiàn)跳轉(zhuǎn)
例如"redirect:/","redirect:/employee"
<a th:href="@{/test/view/redirect}" rel="external nofollow" >測試SpringMVC的視圖RedirectView</a><br>
@RequestMapping("test/view/redirect") public String testRedirectView() { return "redirect:/test/model"; }
四、視圖控制器view-controller
當控制器方法中,僅僅用來實現(xiàn)頁面跳轉(zhuǎn),即只需要設(shè)置視圖名稱時,可以將處理器方法使用view-controller標簽進行表示
注:
當SpringMVC中設(shè)置任何一個view-controller時,其他控制器中的請求映射將全部失效,此時需 要在SpringMVC的核心配置文件中設(shè)置開啟mvc注解驅(qū)動的標簽:
<mvc:annotation-driven />
<!--開啟mvc的注解驅(qū)動--> <mvc:annotation-driven /> <!-- 視圖控制器:為當前的請求直接設(shè)置視圖名稱實現(xiàn)頁面跳轉(zhuǎn) 若設(shè)置視圖控制器,則只有視圖控制器所設(shè)置的請求會被處理,其他的請求將全部404 此時必須在配置一個標簽:<mvc:annotation-driven /> --> <mvc:view-controller path="/" view-name="index"></mvc:view-controller>
到此這篇關(guān)于SpringMVC視圖作用詳解的文章就介紹到這了,更多相關(guān)SpringMVC視圖內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Spring學(xué)習(xí)筆記3之消息隊列(rabbitmq)發(fā)送郵件功能
這篇文章主要介紹了Spring學(xué)習(xí)筆記3之消息隊列(rabbitmq)發(fā)送郵件功能的相關(guān)資料,非常不錯,具有參考借鑒價值,需要的朋友可以參考下2016-07-07在IntelliJ IDEA中多線程并發(fā)代碼的調(diào)試方法詳解
這篇文章主要介紹了在IntelliJ IDEA中多線程并發(fā)代碼的調(diào)試方法,本文給大家介紹的非常詳細,對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2020-08-08SpringBoot整合PageHelper分頁無效的常見原因分析
這篇文章主要介紹了SpringBoot整合PageHelper分頁無效的常見原因分析,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教2024-08-08Spring容器刷新obtainFreshBeanFactory示例詳解
這篇文章主要為大家介紹了Spring容器刷新obtainFreshBeanFactory示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪2023-03-03