SpringBoot----thymeleaf轉發與重定向的使用及其自動原理34

SpringBoot的請求轉發和重定向的使用方法以及自動判斷的原理

使用方法

@PostMapping("/emp")
public String addEmp(Employee employee){

System.out.println("保存的員工信息"+employee.toString());


     //redirect:表示重定向到一個地址(提交表單最好用重定向免得表單重複提交)
     //forward:表示轉發到一個地址
     // "/" 代表當前項目路徑
    return "redirect:/emps";
}

forward:請求轉發

redirect:重定向


原理

Ctrl+Shift+T查找到ThymeleafAutoConfiguration這個自動配置類,然後找到thymeleafViewResolver這個方法。

這個方法向容器返回一個thymeleaf的視圖解析器,這個視圖解析器會替換掉SpringMVC默認的視圖解析器。

打開ThymeleafViewResolver這個類,找到createView這個方法,裏面的RedirectView這個重定向類,裏面的渲染方法

renderMergedOutputModel調用了sendRedirect這個方法,找到這個方法可以看到response.sendRedirect(encodedURL);

總結:thymeleaf把springmvc的視圖解析器組件給換了,然後這個組件會根據你填寫的返回值來判斷是重定向還是請求轉發,然後調用的是原生的Servlet的重定向方法。


 

 

 

 

 

 

 


 

 
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章