马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?立即注册
x
SpringMVC 的页面跳转方案主要分为 转发(Forward) 和 重定向(Redirect) 两类,具体实现方式和区别如下:
一、页面跳转方案
1. 转发(Forward)
- 默认方式:直接返回字符串逻辑视图名,由视图解析器拼接前缀和后缀生成完备路径。
- @RequestMapping("/example")
- public String example(Model model) {
- model.addAttribute("data", "value");
- return "viewName"; // 默认转发到 /WEB-INF/views/viewName.jsp
- }
复制代码
- 显式转发:通过 forward: 关键字指定目的地点,不颠末视图解析器。
- return "forward:/targetPath"; // 转发到指定路径(页面或另一个 Controller)
复制代码 2. 重定向(Redirect)
- 显式重定向:通过 redirect: 关键字指定目的地点,不颠末视图解析器,且地点栏会变化。
- Copy Code
- return "redirect:/targetPath"; // 重定向到指定路径(页面或另一个 Controller)
复制代码
- 带参数重定向:通过 RedirectAttributes 传递参数。
- @RequestMapping("/save")
- public String save(RedirectAttributes attributes) {
- attributes.addAttribute("param", "value"); // URL 参数
- attributes.addFlashAttribute("flashParam", "value"); // 临时存储
- return "redirect:/targetPath";
- }
复制代码 二、转发与重定向的区别
特性转发(Forward)重定向(Redirect)地点栏变化不变化(服务器内部跳转)变化(客户端重新发起哀求)哀求次数1 次哀求2 次哀求数据共享可通过 Model 或 request 共享数据需通过 URL 参数或 RedirectAttributes视图解析器生效范围默认方式生效,显式转发不生效显式重定向不生效应用场景需要保存哀求上下文(如表单提交后回显数据)需防止重复提交(如支付成功后跳转结果页) 三、扩展场景示例
1. 跳转到其他 Controller
- // 转发到其他 Controller
- return "forward:/otherController/method";
- // 重定向到其他 Controller
- return "redirect:/otherController/method";
复制代码 2. 静态资源跳转
重定向可直接跳转到外部资源或静态页面(如 redirect:http://example.com),而转发仅限服务器内部资源78。
总结
SpringMVC 的跳转方案以转发和重定向为核心,通过 forward: 和 redirect: 关键字实现机动控制。选择方案时需团结地点栏变化、数据传递需求和安全性等因素14。
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。 |