RedirectAttributes 的使用

2020-04-25 16:05:37来源:博客园 阅读 ()

新老客户大回馈,云服务器低至5折

RedirectAttributes 的使用

因为使用重定向的跳转方式的情况下,跳转到的地址无法获取 request 中的值。RedirecAtrributes 很好的解决了这个问题。

1. redirectAttributes.addAttributie("param", value);

这种方法相当于在重定向链接地址追加传递的参数。以上重定向的方法等同于 return "redirect:/hello?param=value" ,注意这种方法直接将传递的参数暴露在链接地址上,非常的不安全,慎用。

2. redirectAttributes.addFlashAttributie("param", value);

这种方法是隐藏了参数,链接地址上不直接暴露,但是能且只能在重定向的 “页面” 获取 param 参数值。其原理就是将设置的属性放到 session 中,session 中的属性在跳到页面后马上销毁

注意:这种方式在页面中可以正常获取,但是跳转目标是控制器方法的情况下,需要使用 @ModelAttribute 注解绑定参数后才能获取。

package com.pudding.controller;

import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.ModelAttribute;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.servlet.mvc.support.RedirectAttributes;

@Controller
public class RedirectController {

	@RequestMapping("/set-flash-attribute")
	public String setFlashAttribute(RedirectAttributes redirectAttribute) {
		redirectAttribute.addFlashAttribute("username", "jack");
		return "redirect:/user-information";
	}

	@RequestMapping("/user-information")
	public String get(@ModelAttribute("username") String username) {

		System.out.println(username);

		return "/user-information";
	}

}

原文链接:https://www.cnblogs.com/lemon-coke-pudding/p/12774995.html
如有疑问请与原作者联系

标签:

版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有

上一篇:SpringMVC视图解析中的 forward: 与 redirect: 前缀

下一篇:Java编程语言基础知识进阶学习路线及目标