一、從多個方面對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-hk/n/200653.html
微信掃一掃
支付寶掃一掃