我在我的应用程序中使用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消息显示为空白(“”);
答案 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范围