SSM-SpringMVC-深入SpringMVC组件-重定向
实现重定向功能:
@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());
//带有redirect,代表需要重定向
return "redirect:./showRoleJsonInfo"
}
通过返回视图实现重定向
@RequestMapping("/addRole2")
//Model为重定向数据模型,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");
return mv;
}
有效传递对象,SpringMVC 提供一个方法—falsh属性,需要提供一个数据模型是RedirectAttribute
@RequestMapping("/addRole3")
//Model为重定向数据模型,Spring MVC会自动初始化它
public String addRole3(RedirectAttributes ra,Role role){
//插入角色后,会回填角色编号
roleService.insertRole(role);
//绑定重定向数据模型
ra.addFlashAttribute("role",role);
return "redirect:./showRoleJsonInfo2";
}
这样就能传递对象给下一个地址,原理是,保存到session中,过程: