RedirectAttributes 是Spring mvc 3.1版本之后出来的一个功能,专门用于重定向之后还能带参数跳转的的工具类
它本身有两种带参数的方式:
第一种:
redirectAttributes.addAttributie("prama",value); 这种方法相当于在重定向链接地址追加传递的参数,例如:
redirectAttributes.addAttributie("prama1",value1); redirectAttributes.addAttributie("prama2",value2); return:"redirect:/path/list"
以上重定向的方法等同于 return:"redirect:/path/list?prama1=value1&prama2=value2 " ,这种方法相当于将参数拼接到路径后面,这种方式会暴露参数的值,想好了再用;
第二种:
redirectAttributes.addFlashAttributie("prama",value); 这种方式是隐藏了参数,链接地址上不会暴露参数,但是只能重定向到页面获取prama的参数值,原理就是将值放到session中,session在跳转页面后马上移除对象,如果是重定向再一个controller中用(@RequestParam(value = "param") String param)注解,采用这种方式来获取值
redirectAttributes.addFlashAttributie("prama1",value1); redirectAttributes.addFlashAttributie("prama2",value2); return:"redirect:/path/list.jsp"
在以上参数均可在list.jsp页面使用EL表达式获取到参数值${prama*}
controller获得redirectAttributes重定向的值例如:
redirectAttributes.addFlashAttributie("prama1",value1); redirectAttributes.addFlashAttributie("prama2",value2); return:"redirect:/path/list/"
页面获取值
@RequestMapping("list")
public List list(@RequestPrama(value = "prama1")String prama1,@RequestPrama(value = "prama2")String prama2){
} 通过在controller中的list方法体中可以获取到参数值。