Spring MVC 页面跳转方案与区别

打印 上一主题 下一主题

主题 1761|帖子 1761|积分 5283

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?立即注册

x
SpringMVC 的页面跳转方案主要分为 ‌转发(Forward)‌ 和 ‌重定向(Redirect)‌ 两类,具体实现方式和区别如下:
一、页面跳转方案

1. ‌转发(Forward)‌



  • 默认方式‌:直接返回字符串逻辑视图名,由视图解析器拼接前缀和后缀生成完备路径。
  1. @RequestMapping("/example")
  2. public String example(Model model) {
  3.     model.addAttribute("data", "value");
  4.     return "viewName";  // 默认转发到 /WEB-INF/views/viewName.jsp
  5. }
复制代码


  • 显式转发‌:通过 forward: 关键字指定目的地点,‌不颠末视图解析器‌。
  1. return "forward:/targetPath";  // 转发到指定路径(页面或另一个 Controller)
复制代码
2. ‌重定向(Redirect)‌



  • 显式重定向‌:通过 redirect: 关键字指定目的地点,‌不颠末视图解析器‌,且地点栏会变化。
  1. Copy Code
  2. return "redirect:/targetPath";  // 重定向到指定路径(页面或另一个 Controller)
复制代码


  • 带参数重定向‌:通过 RedirectAttributes 传递参数。
  1. @RequestMapping("/save")
  2. public String save(RedirectAttributes attributes) {
  3.     attributes.addAttribute("param", "value");  // URL 参数
  4.     attributes.addFlashAttribute("flashParam", "value");  // 临时存储
  5.     return "redirect:/targetPath";
  6. }
复制代码
二、转发与重定向的区别

特性‌转发(Forward)‌重定向(Redirect)‌地点栏变化‌不变化(服务器内部跳转)‌变化(客户端重新发起哀求)‌哀求次数‌1 次哀求2 次哀求‌数据共享‌可通过 Model 或 request 共享数据‌需通过 URL 参数或 RedirectAttributes‌‌视图解析器生效范围‌默认方式生效,显式转发不生效‌显式重定向不生效‌应用场景‌需要保存哀求上下文(如表单提交后回显数据)需防止重复提交(如支付成功后跳转结果页) 三、扩展场景示例

1‌. 跳转到其他 Controller‌
  1. // 转发到其他 Controller
  2. return "forward:/otherController/method";
  3. // 重定向到其他 Controller
  4. return "redirect:/otherController/method";
复制代码
‌2. 静态资源跳转‌
重定向可直接跳转到外部资源或静态页面(如 redirect:http://example.com),而转发仅限服务器内部资源‌78。
   总结
SpringMVC 的跳转方案以转发和重定向为核心,通过 forward: 和 redirect: 关键字实现机动控制。选择方案时需团结地点栏变化、数据传递需求和安全性等因素‌14。

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

罪恶克星

论坛元老
这个人很懒什么都没写!
快速回复 返回顶部 返回列表