詳解SpringMVC中的四種跳轉(zhuǎn)方式、視圖解析器問題
更新時間:2022年10月30日 14:44:24 作者:姓蔡小朋友
這篇文章主要介紹了SpringMVC的四種跳轉(zhuǎn)方式、視圖解析器,springmvc核心配置文件和視圖解析器的使用,添加視圖解析器,通過案例講解四種跳轉(zhuǎn)方式,需要的朋友可以參考下
一、視圖解析器:
1.springmvc核心配置文件,添加視圖解析器:
<?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:context="http://www.springframework.org/schema/context" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/context https://www.springframework.org/schema/context/spring-context.xsd"> <!--添加視圖解析器 視圖解析器作用: 比如我們要訪問/admin/main.jsp時,傳統(tǒng)頁面跳轉(zhuǎn)需要輸入完整URI訪問路徑, 而使用了視圖解析器后,會自動在訪問路徑前后添加配置前綴和配置后綴, 比如配置了如下前綴和后綴后,我們要訪問/admin/main.jsp,訪問路徑只需要寫main就可以了 --> <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver"> <!--配置前綴--> <property name="prefix" value="/admin/"></property> <!--配置后綴--> <property name="suffix" value=".jsp"></property> </bean> </beans>
2.視圖解析器的使用:
@Controller public class JumpAction { @RequestMapping("/one") public String one(){ System.out.println("請求轉(zhuǎn)發(fā)頁面(默認)"); return "main"; //方法返回"main","main"會被視圖解析器添加前后綴,變成/admin/main.jsp,接著訪問該URI對應的頁面。 }
3、視圖解析器類InternalResourceViewResolver源碼解析:
public class UrlBasedViewResolver extends AbstractCachingViewResolver implements Ordered { public static final String REDIRECT_URL_PREFIX = "redirect:";//重定向 public static final String FORWARD_URL_PREFIX = "forward:";//轉(zhuǎn)發(fā) private String prefix = "";//前綴 private String suffix = "";//后綴
- 在springmvc核心配置文件中配置視圖解析器,為視圖解析器添加前后綴,實際上是給視圖解析器類InternalResourceViewResolver的成員方法賦值,視圖解析器類會自動為Action類的方法中return的字符串進行拼接,拼接兩個成員方法作為前后綴生成新的URI。
- 我們注意到視圖解析器類InternalResourceViewResolver還有兩個靜態(tài)成員變量,如果Action類的方法中return的字符串包含這兩個值時,視圖解析器類就不再進行前綴后綴的拼接。
二、SpringMVC四種跳轉(zhuǎn)方式:
- 請求轉(zhuǎn)發(fā)頁面。
- 請求轉(zhuǎn)發(fā)action。
- 重定向頁面。
- 重定向action。
1.跳轉(zhuǎn)方式案例:
前端:
<a href="${pageContext.request.contextPath}/one.action" rel="external nofollow" >請求轉(zhuǎn)發(fā)頁面(默認)</a><br> <a href="${pageContext.request.contextPath}/two.action" rel="external nofollow" >請求轉(zhuǎn)發(fā)action</a><br> <a href="${pageContext.request.contextPath}/three.action" rel="external nofollow" >重定向頁面</a><br> <a href="${pageContext.request.contextPath}/four.action" rel="external nofollow" >重定向action</a><br>
后端:
@Controller public class JumpAction { @RequestMapping("/one") public String one(){ System.out.println("請求轉(zhuǎn)發(fā)頁面(默認)"); //return "main"; //這種訪問方式,默認會調(diào)用視圖解析器自動拼接前綴和后綴進行請求轉(zhuǎn)發(fā)頁面跳轉(zhuǎn) return "forward:/fore/user.jsp";//只要使用了forward:就可以屏蔽前綴和后綴的拼接,自己手工構建返回的路徑 } @RequestMapping("/two") public String two(){ System.out.println("請求轉(zhuǎn)發(fā)action"); return "forward:/other.action"; } @RequestMapping("/three") public String three(){ System.out.println("重定向頁面"); return "redirect:/admin/main.jsp";//只要使用了redirect:就可以屏蔽前綴和后綴的拼接,自己手工構建返回的路徑 } @RequestMapping("/four") public String four(){ System.out.println("重定向action"); //觀察地址欄的變化 http://localhost:8080/other.action return "redirect:/other.action"; } }
到此這篇關于SpringMVC的四種跳轉(zhuǎn)方式、視圖解析器的文章就介紹到這了,更多相關SpringMVC跳轉(zhuǎn)方式內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
lombok注解@Data使用在繼承類上時出現(xiàn)警告的問題及解決
Lombok的@Data注解簡化了實體類代碼,但在子類中使用時會出現(xiàn)警告,指出equals和hashCode方法不會考慮父類屬性,解決方法有兩種:一是在父類上使用@EqualsAndHashCode(callSuper=true)注解;二是通過配置lombok.config文件,均能有效解決警告問題2024-10-10Java數(shù)據(jù)結(jié)構之快速冪的實現(xiàn)
快速冪是用來解決求冪運算的高效方式。本文將詳細為大家介紹如何利用Java實現(xiàn)快速冪,以及利用快速冪求解冪運算問題,需要的可以參考一下2022-03-03Java中String.format的使用方法總結(jié)
這篇文章主要介紹了Java中String.format的用法總結(jié)的相關資料,需要的朋友可以參考下2017-03-03Mybatis批量更新對象數(shù)據(jù)的兩種實現(xiàn)方式
這篇文章主要介紹了Mybatis批量更新對象數(shù)據(jù)的兩種實現(xiàn)方式,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教2024-08-08