RedirectAttributes无法使用spring安全性

时间:2014-07-02 05:19:01

标签: spring-mvc spring-security response.redirect

我在我的应用程序中使用spring security。

在我的一个控制器方法中,我重定向到另一个控制器方法并附加模型属性,但我没有在下一个控制器方法中获得那些modelAttributes。

是否因为Spring Security Filter的一些内部重定向可能会杀死那些重定向flash属性而发生?

这是我的代码:

@RequestMapping("/method1")
public String firstMethod(Model model,RedirectAttributes redirectAttributes) {
  ... do something ...
  redirectAttributes.addFlashAttributes("message","This is a test message");
  return "redirect:/method2";
}

@RequestMapping("/method2")
public String secondMethod(@ModelAttribute("message") String message, Model model) {
  ... do something ...

  return "some_view";
}

这里的secondMethod消息显示为空白(“”);

2 个答案:

答案 0 :(得分:1)

使用addAttribute代替addFlashAttributes

阅读差异here

@RequestMapping("/method1")
public String firstMethod(Model model,RedirectAttributes redirectAttributes) {
  redirectAttributes.addAttribute("message","This is a test message");
  return "redirect:/method2";
}

@RequestMapping("/method2")
public String secondMethod(@ModelAttribute("message") String message, Model model) {
  return "some_view";
}

答案 1 :(得分:0)

如果您使用重定向,它将不会带有标题或属性。但您可以维护会话,如果它在同一个应用程序中,您可以使用它。使用重定向意味着创建新请求。

您最好使用自定义falsh范围