【发布时间】:2023-03-27 09:11:01
【问题描述】:
我有一个控制器,它设置一些 Flash 属性并调用重定向。我还有一个前置控制器拦截器,它将拦截重定向的 URL 并强制进行另一个重定向。此时我的 Flash 属性被删除,因为 spring 认为重定向目标已经实现。
我想保留这些属性,以便我的第二个控制器可以在第二次重定向后访问它们。
有什么方法可以实现吗?
请注意,我无法更改最初填充它们的第一个控制器,我需要这些属性才能到达第二个重定向控制器。
【问题讨论】:
-
将它们添加到新注入的
RedirectAttributes对象中或自己将它们放入HttpSession中。 -
让我澄清一下:控制器 A 填充 RedirectAttributes 对象并重定向到控制器 B。控制器 B 永远无法到达,因为拦截器将强制重定向到控制器 C。在我的拦截器中,我可以访问请求、响应和处理程序方法。我只能将代码添加到控制器 C 或拦截器。你建议我在哪里检索它们?
标签: spring spring-mvc