重定向向页面传值RedirectAttributes的用法

2,837 阅读1分钟

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方法体中可以获取到参数值。