一、从多个方面对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/n/200653.html
微信扫一扫
支付宝扫一扫