跨重定向请求传递数据
先来个简单的重定向了解一下?
这里,我们可以使用占位符{}利用URL模板以及路径变量传递数据
假设我们不想在重定向中发送简单的Integer String 这些类型的数据,而是要传递一个对象,那么我们可以使用flash 属性;
Spring 通过RedirectAttributes设置flash属性的方法,他不但提供了Model的所有功能外还有几个方法是用来设置flash属性的,addFlashAttribute()方法了解一哈?
它的具体运作方式如下:
代码:
@RequestMapping("/testRedirect")
public String testRedirect(Model attr){
attr.addAttribute("userName", "root");
attr.addAttribute("password","123456");
return "redirect:/classModule/catchRedirect";
}
@RequestMapping("/catchRedirect")
@ResponseBody
public String catchRedirect(ModelMap map,HttpServletRequest request,@RequestParam("userName") String userName, @RequestParam(value = "password",required = false) String password){
System.out.println("userName : "+map.get("userName"));
System.out.println("userName1 :" + request.getAttribute("userName"));
System.out.println("userName2 :" + request.getParameter("userName"));
System.out.println("userName3 : " + userName);
System.out.println("password : "+map.get("password"));
System.out.println("password1 :" + request.getAttribute("password"));
System.out.println("password2 :" + request.getParameter("password"));
System.out.println("password3 : " + password);
return "result";
}
结果
userName : null
userName1 :null
userName2 :root
userName3 : root
password : null
password1 :null
password2 :123456
password3 : 123456
使用Flash不知道为什么,一加入RedirectAttributes 方法就会404暂时无代码