SpringMVC 轉發、重定向


 

轉發、重定向到其它業務方法

@org.springframework.stereotype.Controller
@RequestMapping("/userController")
public class UserController{

    @RequestMapping("/handler1")
    public String handler1() throws IOException {
        //轉發給handler2處理
        return "forward:handler2";
    }

    @RequestMapping("/handler2")
    public void handler2(HttpServletResponse response) throws IOException {
       //......
    }

}

返回String,在里面加上關鍵字:forward(轉發),redirect(重定向)。

  

 

(1)如果是轉發、重定向到本controller的其它業務方法:

  • 可以寫全路徑
return "forward:/userController/handler2";

 

  • 也可以只寫子路徑,但不要子路徑開頭的斜杠

     不管handler2()是標注為@RequestMapping("/handler2"),還是標注為@RequestMapping("handler2"),都只能這樣:

return "forward:handler2";

 

 

(2)如果是轉發、重定向到其它controller的業務方法,只能寫全路徑。

 

 


 

 

轉發、重定向到視圖

springmvc本來就會把返回的字符串作為視圖名解析,然后轉發到對應的視圖。

 

轉發有2種方式:

  • 不使用關鍵字forward,可以使用視圖解析器
  • 使用關鍵字forward,但只能寫全路徑

 

重定向:

  • 使用關鍵字redirect,只能寫全路徑

 

因為使用關鍵字forward、redirect時,SpringMVC不會使用視圖解析器來解析視圖名,也就不能使用視圖名拼接,只能寫全路徑。

 

 

示例

在web文件夾下新建1.jsp

return "redirect:/1.jsp";

/表示web文件夾根目錄。

 

可以轉發、重定向到html這種靜態頁面,也可以轉發、重定向到WEB-INF下的頁面,但需要配置資源,

參考:https://www.cnblogs.com/chy18883701161/p/12249175.html

 

 


  

 

當然,也可以使用servlet的方式來實現:

  • 傳入HttpServletRequest | HttpServletResponse類型的參數。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM