欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Spring Boot項目@RestController使用重定向redirect方式

 更新時間:2021年09月02日 09:07:46   作者:EasonJim  
這篇文章主要介紹了Spring Boot項目@RestController使用重定向redirect方式,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教

Spring Boot @RestController重定向redirect

Spring MVC項目中頁面重定向一般使用return "redirect:/other/controller/";即可。而Spring Boot使用了@RestController注解,上述寫法只能返回字符串

解決方法如下

將一個HttpServletResponse參數(shù)添加到處理程序方法然后調(diào)用response.sendRedirect("some-url");

@RestController
public class FooController {
  @RequestMapping("/foo")
  void handleFoo(HttpServletResponse response) throws IOException {
    response.sendRedirect("some-url");
  }
}

@RestController 注釋下的重定向探討

背景

在工作中遇到需要@RestController 內(nèi)部的方法直接進行重定向或者轉(zhuǎn)發(fā)

我們知道@RestController注解后,方法默認(rèn)返回json。但是如果返回ModelAndView 則依然按ModelAndView曾經(jīng)的邏輯走

那么springmvc內(nèi)部的邏輯是如何走的呢?

HandlerMethodReturnValueHandlerComposite#selectHandler()
HandlerMethodReturnValueHandlerComposite#handleReturnValue() 
ServletInvocableHandlerMethod#invokeAndHandle()
RequestMappingHandlerAdapter#invokeHandlerMethod()
RequestMappingHandlerAdapter#handleInternal() 
AbstractHandlerMethodAdapter#handle() 
DispatcherServlet#doDispatch()
DispatcherServlet#doService()

自下向上調(diào)用,最終通過依據(jù)返回參數(shù)和MethodParameter(方法參數(shù)的簡述類) 得到使用何種HandlerMethodReturnValueHandler,當(dāng)我們加上@RestController 如果方法返回ModelAndView 或者 View自然返回ModelAndViewMethodReturnValueHandler去處理,因此就解決了需要在@RestController注解下轉(zhuǎn)發(fā)或重定向的問題。

下面是springmvc 默認(rèn)的15種HandlerMethodReturnValueHandler

0 = {ModelAndViewMethodReturnValueHandler@7121} 
1 = {ModelMethodProcessor@8372} 
2 = {ViewMethodReturnValueHandler@8373} 
3 = {ResponseBodyEmitterReturnValueHandler@8374} 
4 = {StreamingResponseBodyReturnValueHandler@7125} 
5 = {HttpEntityMethodProcessor@8375} 
6 = {HttpHeadersReturnValueHandler@8376} 
7 = {CallableMethodReturnValueHandler@8377} 
8 = {DeferredResultMethodReturnValueHandler@8378} 
9 = {AsyncTaskMethodReturnValueHandler@8379} 
10 = {ModelAttributeMethodProcessor@8380} 
11 = {RequestResponseBodyMethodProcessor@7132} 
12 = {ViewNameMethodReturnValueHandler@8381} 
13 = {MapMethodProcessor@8382} 
14 = {ModelAttributeMethodProcessor@8383} 

以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • PowerJob LockService方法工作流程源碼解讀

    PowerJob LockService方法工作流程源碼解讀

    這篇文章主要為大家介紹了PowerJob LockService方法工作流程源碼解讀,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2024-01-01
  • java實現(xiàn)Socket通信之單線程服務(wù)

    java實現(xiàn)Socket通信之單線程服務(wù)

    這篇文章主要為大家詳細(xì)介紹了java實現(xiàn)Socket通信的單線程服務(wù),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2018-07-07
  • 使用Flyway進行Java數(shù)據(jù)庫版本控制的操作指南

    使用Flyway進行Java數(shù)據(jù)庫版本控制的操作指南

    今天我們將深入探討如何使用Flyway進行Java數(shù)據(jù)庫版本控制,Flyway是一個流行的數(shù)據(jù)庫遷移工具,用于管理和自動化數(shù)據(jù)庫模式的演變,文中通過代碼示例介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作有一定的幫助,需要的朋友可以參考下
    2024-07-07
  • Maven項目在new module后,pom文件顯示為Ignored pom.xml問題

    Maven項目在new module后,pom文件顯示為Ignored pom.xml問題

    在Maven項目中,若創(chuàng)建過同名module后刪除,再次創(chuàng)建時可能導(dǎo)致pom.xml文件被IDEA忽略,原因是IDEA保留了之前module的痕跡,導(dǎo)致重建時將其視為已刪除的module,解決方法是進入IDEA設(shè)置,找到Maven的Ignored Files設(shè)置
    2024-09-09
  • mybatis plus動態(tài)數(shù)據(jù)源切換及查詢過程淺析

    mybatis plus動態(tài)數(shù)據(jù)源切換及查詢過程淺析

    這篇文章主要介紹了mybatis plus動態(tài)數(shù)據(jù)源切換及查詢過程淺析,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-12-12
  • 快速搭建一個SpringBoot項目(純小白搭建教程)

    快速搭建一個SpringBoot項目(純小白搭建教程)

    本文主要介紹了快速搭建一個SpringBoot項目,文中通過示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-11-11
  • java集合中的list詳解

    java集合中的list詳解

    這篇文章主要介紹了java集合中的list詳解,還是比較不錯的,這里分享給大家,需要的朋友可以參考下。
    2017-11-11
  • SpringSecurity HttpSecurity 類處理流程分析

    SpringSecurity HttpSecurity 類處理流程分析

    SpringSecurity在SSM項目中使用基于配置文件,通過XML標(biāo)簽定義認(rèn)證信息,HttpSecurity在SpringBoot中通過代碼配置實現(xiàn)與XML相同功能,詳細(xì)介紹了HttpSecurity的類結(jié)構(gòu)、處理過程及其與SecurityBuilder的關(guān)系,感興趣的朋友一起看看吧
    2024-09-09
  • 關(guān)于Spring注解@Async引發(fā)其他注解失效的解決

    關(guān)于Spring注解@Async引發(fā)其他注解失效的解決

    這篇文章主要介紹了關(guān)于Spring注解@Async引發(fā)其他注解失效的解決,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-03-03
  • SpringSecurity實現(xiàn)登陸認(rèn)證并返回token方式

    SpringSecurity實現(xiàn)登陸認(rèn)證并返回token方式

    這篇文章主要介紹了SpringSecurity實現(xiàn)登陸認(rèn)證并返回token方式,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2024-03-03

最新評論