基于重定向RedirectAttributes的用法解析

网友投稿 738 2022-11-14

基于重定向RedirectAttributes的用法解析

基于重定向RedirectAttributes的用法解析

目录重定向RedirectAttributes的用法它有两种带参的方式页面获值controller获得redirectAttributes重定向的值RedirectAttributes详解1、addFlashAttribute2、addAttribute

重定向RedirectAttributes的用法

刚才做项目,遇到了redirectAttributes使用的问题,上网找了找,看到一篇写的很不错的博客,解决我对于RedirectAttributes的困惑,也给大家推荐下。

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中是获取不到该prama属性值的。除非在controller中用(@RequestPrama(value = "prama")String prama)注解,采用传参的方式。

页面获值

例如:

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,...

){

//TODO

//your code

}

通过在controller中的list方法体中可以获取到参数值。

RedirectAttributes详解

RedirectAttributes 的两个方式的获取总结:

1、addFlashAttribute

@RequestMapping (value= "hello" )

public String test(RedirectAttributes ra){

ra.addFlashAttribute( "test" , "test" );

return "redirect:/test" ;

}

@RequestMapping (value= "test" )

public String test( @ModelAttribute ( "test" )String test){

System.out.println(test);

return "redirect:/hello" ;

}

2、addAttribute

@RequestMapping (value= "hello" )

public String test(RedirectAttributes ra){

ra.addAttribute( "test" , "test" );

return "redirect:/test" ;

}

@Requhttp://estMapping (value= "test" )

public String test(HttpServletRequest request ){

String test = request.getParameter( "test" );

System.out.println(test);

return "redirect:/hello" ;

}

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:黑盒测试中-关键截图-的打点方案
下一篇:手持振弦VH501TC采集仪传感器的连接与数据读取
相关文章

 发表评论

暂时没有评论,来抢沙发吧~