使用RedirectAttributes将数据传入重定向的页面

    有时候咱们可能会遇到需要将数据传入重定向的页面当中的情形,比如登录成功后重定向到项目主页,并显示提示信息。这时就需要将登录验证中得到的验证结果传入重定向之后的页面。

使用<kbd>RedirectAttributes </kbd>可以达到我们想要的效果,他是专门用于重定向携带参数跳转的的工具类,它有两种实现方式:

第一种:
使用<kbd>redirectAttributes.addAttributie(“param”,value); </kbd>
这种方法相当于在重定向链接地址追加传递的参数。
<mark>注意</mark>:这种方法会将传递的参数直接暴露在链接地址上,很不安全。
url会变成:xxx/main?param=value

public String xxx(RedirectAttributes redirectAttributes) {
	redirectAttributes.addAttributie("param",value);
	return:"redirect:main" 
}

第二种:
使用<kbd>redirectAttributes.addFlashAttributie(“param”,value);</kbd>
这种方法隐藏了参数,但是能且只能在重定向的 “页面” (如jsp页面)中获取param参数值。
<mark>原理</mark>:该属性值被放到session中,session在跳到页面后马上移除对象。若是重定向到controller中,则获取不到该属性值。除非在controller中用(@RequestParam(value = “param”)String param)注解
在controller中取得param的方法:

public String xxx(RedirectAttributes redirectAttributes) {
	redirectAttributes.addAttributie("param",value);
	return:"redirect:yyy" 
}
@RequestMapping("/yyy")
public Map<Object,Object> forYYY(@RequestParam(value = "pparam")String  param, ...){
	System.out.println(param);
	//your code
}

参考博文:
[1].关于重定向RedirectAttributes的用法

全部评论

相关推荐

点赞 评论 收藏
分享
10-21 23:48
蚌埠坦克学院
csgq:可能没hc了 昨天一面完秒挂
点赞 评论 收藏
分享
点赞 收藏 评论
分享
牛客网
牛客企业服务