信管女生做網(wǎng)站開發(fā)百度集團
目錄
ThymeleafView
轉(zhuǎn)發(fā)視圖
重定向視圖
視圖控制器view-controller
SpringMVC中的視圖是View接口,視圖的作用:渲染數(shù)據(jù),將模型Model中的數(shù)據(jù)展示給用戶
SpringMVC視圖的種類很多,默認有轉(zhuǎn)發(fā)視圖InternalResourceView 和重定向視圖RedirectView
當工程引入jstl的依賴,轉(zhuǎn)發(fā)視圖會自動轉(zhuǎn)換為JstlView
若使用的視圖技術(shù)為Thymeleaf,在SpringMVC的配置文件中配置了Thymeleaf的視圖解析器,由此視圖解析器解析之后所得到的是ThymeleafView
ThymeleafView
當控制器方法中所設(shè)置的視圖名稱沒有任何前綴時,此時的視圖名稱會被SpringMVC配置文件中所配置的視圖解析器解析,視圖名稱拼接視圖前綴和視圖后綴所得到的最終路徑,會通過轉(zhuǎn)發(fā)的方式實現(xiàn)跳轉(zhuǎn)
package com.qcby.mvc.controller;import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;@Controller
public class ViewController {@RequestMapping("/testThymeleafView")public String testThymeleafView(){return "success";}
}
package com.qcby.mvc.controller;import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;@Controller
public class TestController {@RequestMapping("/")public String index(){return "index";}@RequestMapping("/test_view")public String testView(){return "test_view";}
}
?test_view.html:
<!DOCTYPE html>
<html lang="en" xmlns:th="http://www.thymeleaf.org">
<head><meta charset="UTF-8"><title>Title</title>
</head>
<body>
<a th:href="@{/testThymeleafView}">測試ThymeleafView</a>
</body>
</html>
運行:?
轉(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"
package com.qcby.mvc.controller;import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;@Controller
public class ViewController {@RequestMapping("/testThymeleafView")public String testThymeleafView(){return "success";}@RequestMapping("/testForward")public String testForward(){return "forward:/testThymeleafView";}
}
<!DOCTYPE html>
<html lang="en" xmlns:th="http://www.thymeleaf.org">
<head><meta charset="UTF-8"><title>Title</title>
</head>
<body>
<a th:href="@{/testForward}">測試InternalResourceView</a>
</body>
</html>
?運行:
頁面路徑為/testForward
重定向視圖
SpringMVC中默認的重定向視圖是RedirectView
當控制器方法中所設(shè)置的視圖名稱以"redirect:"為前綴時,創(chuàng)建RedirectView視圖,此時的視圖名稱不會被SpringMVC配置文件中所配置的視圖解析器解析,而是會將前綴"redirect:"去掉,剩余部分作為最終路徑通過重定向的方式實現(xiàn)跳轉(zhuǎn)
例如"redirect:/","redirect:/employee"
重定向視圖在解析時,會先將redirect:前綴去掉,然后會判斷剩余部分是否以/開頭,若是則會自 動拼接上下文路徑
package com.qcby.mvc.controller;import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;@Controller
public class ViewController {@RequestMapping("/testThymeleafView")public String testThymeleafView(){return "success";}@RequestMapping("/testRedirect")public String testRedirect(){return "redirect:/testThymeleafView";}
}
<!DOCTYPE html>
<html lang="en" xmlns:th="http://www.thymeleaf.org">
<head><meta charset="UTF-8"><title>Title</title>
</head>
<body>
<a th:href="@{/testRedirect}">測試RedirectView</a>
</body>
</html>
?運行:
頁面路徑為/testThymeleafView
視圖控制器view-controller
當控制器方法中,僅僅用來實現(xiàn)頁面跳轉(zhuǎn),即只需要設(shè)置視圖名稱時,可以將處理器方法使用viewcontroller標簽進行表示
springMVC.xml:
<!--path:設(shè)置處理的請求地址view-name:設(shè)置請求地址所對應的視圖名稱
-->
<mvc:view-controller path="/" view-name="index"></mvc:view-controller>
代替:
package com.qcby.mvc.controller;import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;@Controller
public class TestController {@RequestMapping("/")public String index(){return "index";}
}
注: 當SpringMVC中設(shè)置任何一個view-controller時,其他控制器中的請求映射將全部失效,此時需要在SpringMVC的核心配置文件中設(shè)置開啟mvc注解驅(qū)動的標簽:
<!--開啟MVC的注解驅(qū)動-->
<mvc:annotation-driven></mvc:annotation-driven>