Flash 属性
Flash 属性提供了一种让一个请求存储旨在供另一个请求使用的属性的方法。 这在重定向时最常需要——例如,Post-Redirect-Get 模式。 Flash 属性在重定向之前临时保存(通常在会话中),以便在重定向后的请求中可用,并立即被移除。
Web MVC 有两个主要的抽象来支持 Flash 属性。FlashMap 用于保存 Flash 属性,
而 FlashMapManager 用于存储、检索和管理 FlashMap 实例。
Flash 属性支持始终是“开启”的,不需要显式启用。但是,如果不使用,它绝不会导致创建 HTTP 会话。
在每个请求上,都有一个具有从上一个请求传递的属性(如果有)的“输入”FlashMap,
以及一个具有要为后续请求保存的属性的“输出”FlashMap。
这两个 FlashMap 实例都可以通过 RequestContextUtils 中的静态方法在 Web MVC 的任何地方访问。
带注解的控制器通常不需要直接使用 FlashMap。相反,@RequestMapping 方法可以接受 RedirectAttributes
类型的参数,并使用它为重定向场景添加 Flash 属性。通过 RedirectAttributes 添加的 Flash 属性会自动传播到“输出”FlashMap。
同样,在重定向之后,来自“输入”FlashMap 的属性会自动添加到服务于目标 URL 的控制器的 Model 中。