一、從多個方面對Controller重定向做詳細的闡述
1、Controller重定向跳轉
Controller重定向可以跳轉到網站內部的其他頁面或外部的其他網站。
在Spring MVC中,重定向可以通過RedirectView和RedirectAttributes實現。RedirectView用於指定跳轉URL,RedirectAttributes用於傳遞參數。
@RequestMapping("/redirect") public RedirectView redirect() { RedirectView redirectView = new RedirectView(); redirectView.setUrl("/targetPage"); return redirectView; }
2、Controller與JSP
Controller重定向還可以與JSP搭配使用,實現頁面跳轉。可以通過返回邏輯視圖名實現重定向到相應的JSP頁面。
@RequestMapping("/redirectJsp") public String redirectJsp() { return "targetPage"; }
3、Controller重定向端口
Controller重定向還可以指定要跳轉的端口。例如,我們要將請求跳轉到本機的8080端口。
@RequestMapping("/redirectPort") public RedirectView redirectPort() { RedirectView redirectView = new RedirectView(); redirectView.setUrl("http://localhost:8080/targetPage"); return redirectView; }
4、Controller重定向到別的IP
Controller重定向還可以指定要跳轉的IP地址。例如,我們要將請求跳轉到192.168.0.1的8080端口,可以使用以下代碼:
@RequestMapping("/redirectIp") public RedirectView redirectIp() { RedirectView redirectView = new RedirectView(); redirectView.setUrl("http://192.168.0.1:8080/targetPage"); return redirectView; }
5、Controller重定向到JSP
除了通過返回邏輯視圖名實現重定向到相應的JSP頁面之外,我們還可以使用forward實現轉發。
@RequestMapping("/forwardJsp") public String forwardJsp() { return "forward:/targetPage.jsp"; }
6、Controller重定向到頁面
Controller重定向還可以跳轉到普通的HTML頁面。例如,我們要將請求跳轉到本機的index.html頁面,可以使用以下代碼:
@RequestMapping("/redirectHtml") public RedirectView redirectHtml() { RedirectView redirectView = new RedirectView(); redirectView.setUrl("http://localhost/index.html"); return redirectView; }
7、Controller重定向到站外
Controller重定向還可以跳轉到其他網站的頁面。例如,我們要將請求跳轉到百度首頁,可以使用以下代碼:
@RequestMapping("/redirectExternal") public RedirectView redirectExternal() { RedirectView redirectView = new RedirectView(); redirectView.setUrl("http://www.baidu.com"); return redirectView; }
8、Controller重定向到HTML
Controller重定向除了跳轉到JSP頁面之外,還可以跳轉到普通的HTML頁面。
@RequestMapping("/redirectHtml") public RedirectView redirectHtml() { RedirectView redirectView = new RedirectView(); redirectView.setUrl("/target.html"); return redirectView; }
9、Controller重定向傳參
Controller重定向還可以傳遞參數,可以使用RedirectAttributes實現。例如,我們想重定向到/person頁面,並攜帶一個名為”name”,值為”Tom”的參數。
@RequestMapping("/redirectParam") public RedirectView redirectParam(RedirectAttributes attributes) { attributes.addAttribute("name", "Tom"); return new RedirectView("/person"); }
二、代碼示例
以下是一個完整的Controller重定向的代碼示例:
@Controller public class RedirectController { @RequestMapping("/redirect") public RedirectView redirect() { RedirectView redirectView = new RedirectView(); redirectView.setUrl("/targetPage"); return redirectView; } @RequestMapping("/redirectJsp") public String redirectJsp() { return "targetPage"; } @RequestMapping("/redirectPort") public RedirectView redirectPort() { RedirectView redirectView = new RedirectView(); redirectView.setUrl("http://localhost:8080/targetPage"); return redirectView; } @RequestMapping("/redirectIp") public RedirectView redirectIp() { RedirectView redirectView = new RedirectView(); redirectView.setUrl("http://192.168.0.1:8080/targetPage"); return redirectView; } @RequestMapping("/forwardJsp") public String forwardJsp() { return "forward:/targetPage.jsp"; } @RequestMapping("/redirectHtml") public RedirectView redirectHtml() { RedirectView redirectView = new RedirectView(); redirectView.setUrl("/target.html"); return redirectView; } @RequestMapping("/redirectExternal") public RedirectView redirectExternal() { RedirectView redirectView = new RedirectView(); redirectView.setUrl("http://www.baidu.com"); return redirectView; } @RequestMapping("/redirectParam") public RedirectView redirectParam(RedirectAttributes attributes) { attributes.addAttribute("name", "Tom"); return new RedirectView("/person"); } }
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/200653.html