SpringMVC实现重定向的方法

版权声明:@渔闻520 https://blog.csdn.net/weixin_41060905/article/details/87542054

#SUMMERY

分为简单重定向和pojo重定向。

简单重定向有:1.通过Model,2.通过mv(redirect);

pojo重定向有:用RedirectAttributes来(addFlashAttribute)。

1.简单重定向:

@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;
	}

$1.通过Model:

@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";
	}

insertRole(role)后,会回填一个id值给role的id属性 ,关于mybatis的主键回填,移步:https://blog.csdn.net/weixin_41060905/article/details/86628057,关于回填后主键如果出现错乱的解决办法:https://blog.csdn.net/weixin_41060905/article/details/86627553

$2.通过MV

@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;
	}
	

2.pojo重定向

@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";
	}
	

其实在url传递数据的时候并不可以传递对象,因为http重定向的参数使用字符串进行传递的。所以,该方法,其实是将数据保存到一个session对象中,重定向完后就删除session中的数据。

猜你喜欢

转载自blog.csdn.net/weixin_41060905/article/details/87542054
今日推荐