Spring MVC 重定向
package com.ssm.chapter15.controller; import com.ssm.chapter15.pojo.Role; import org.springframework.stereotype.Controller; import org.springframework.ui.Model; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.servlet.ModelAndView; import org.springframework.web.servlet.mvc.support.RedirectAttributes; import org.springframework.web.servlet.view.json.MappingJackson2JsonView; @Controller @RequestMapping("/redirect") public class RedirectController { @RequestMapping("/showRoleJsonInfo") public ModelAndView showRoleJsonInfo(Long id, String roleName, String note) { ModelAndView mv = new ModelAndView(); mv.setView(new MappingJackson2JsonView()); mv.addObject("id", id); mv.addObject("roleName", roleName); mv.addObject("note", note); return mv; } @RequestMapping("/addRole") //Model为重定向数据模型,Spring MVC会自动初始化它 public String addRole(Model model, String roleName, String note) { // Role role = new Role(); // role.setRoleName(roleName); // role.setNote(note); // 插入角色后,会回填角色编号 // roleService.insertRole(role); // 绑定重定向数据模型 model.addAttribute("roleName", roleName); model.addAttribute("note", note); // model.addAttribute("id", role.getId()); return "redirect:./showRoleJsonInfo.do"; } @RequestMapping("/addRole2") //ModelAndView对象Spring MVC会自定初始化它 public ModelAndView addRole2(ModelAndView mv, String roleName, String note) { // Role role = new Role(); // role.setRoleName(roleName); // role.setNote(note); //插入角色后,会回填角色编号 // roleService.insertRole(role); //绑定重定向数据模型 mv.addObject("roleName", roleName); mv.addObject("note", note); // mv.addObject("id", role.getId()); mv.setViewName("redirect:./showRoleJsonInfo.do"); return mv; } @RequestMapping("/showRoleJsonInfo2") public ModelAndView showRoleJsonInfo(Role role) { ModelAndView mv = new ModelAndView(); mv.setView(new MappingJackson2JsonView()); mv.addObject("role", role); return mv; } @RequestMapping("/addRole3") //RedirectAttribute对象Spring MVC会自动初始化它 public String addRole3(RedirectAttributes ra, Role role) { //插入角色后,会回填角色编号 // roleService.insertRole(role); // 绑定重定向数据模型 ra.addFlashAttribute("role", role); return "redirect:./showRoleJsonInfo2.do"; } }
返回的字符串带有redirect重定向;
返回视图来实现重定向;
在URL重定向的过程中,并不能有效传递对象,因为HTTP的重定向参数是以字符串传递的。这个时候Spring MVC提供了一个方法——flash属性,你需要提供的数据模型就是一个RedirectAttribute
使用addFlashAttribute方法后,SpringMVC会将数据保存到Session中(Session在一个会话期有效),重定向后就会将其清除,这样就能够传递数据给下一个地址了
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律
2017-06-29 css 选择符中的 >,+,~,=,^,$,*,|,:,空格 的意思