测试成功。带参数的重定向。
模拟情况:添加完信息后跳转到一个新页面,显示刚新增的信息。
测试成功的几种方式。
1.拼接url
addUser
@RequestMapping("/addUser") public ModelAndView addUser(HttpServletRequest request,HttpServletResponse response){ String username = request.getParameter("username"); String password = request.getParameter("password"); String sex = request.getParameter("sex"); String note = request.getParameter("note"); System.out.println(username); userService.addUser(username, password, Byte.parseByte(sex), note); int id = userService.getId(username, password); return new ModelAndView("redirect:/user/showUser?id="+id); }
showUser
@RequestMapping("/showUser") public ModelAndView toIndex(HttpServletRequest request){ ModelAndView modelAndView = new ModelAndView(); //传到的jsp页面 modelAndView.setViewName("showUser"); int id = Integer.parseInt(request.getParameter("id")); System.out.println(id); User user = userService.getUser(id); System.out.println(user); modelAndView.addObject("user", user); return modelAndView; }
2.利用RedirectAttributes类。
redirectAttributes.addFlashAttribute("id", id);
这里用addFlashAttribute(key, value)方法。
传递的页面用
@ModelAttribute("id")int id
取值。
拼接得到的url相当于 return "redirect:/user/showUser?key=value"
感觉第二个比较好用。
不需要传递参数值的话这样就可以了。
return new ModelAndView("redirect:/user/showUser");