Spring MVC 重定向
Posted ooo0
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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在一个会话期有效),重定向后就会将其清除,这样就能够传递数据给下一个地址了
以上是关于Spring MVC 重定向的主要内容,如果未能解决你的问题,请参考以下文章
如何正确编写“重定向”(Spring MVC + Security)