RedirectView之后的Spring处理FlashAttributes

时间:2019-06-17 12:58:08

标签: java spring

我有一个页面check,在其中添加一个flashAttribute("error","Test message");,并向页面RedirectView返回一个login

@RequestMapping(value = "/login")
public ModelAndView mainPage(Model model){

    System.out.println(" - " + model.asMap().get("error") + " - "); //-> - null -

    return new ModelAndView("/login");

}

@RequestMapping(value = "/check")
public View checkLogin(RedirectAttributes redirectAttributes,
                       @RequestHeader(value = "username", required = false)String username,
                       @RequestHeader(value = "password", required = false)String password){

    redirectAttributes.addFlashAttribute("error", "Test message");
    return new RedirectView("/login");

}

此行:model.asMap().get("error")返回null。我该如何处理RedirectAttributes

1 个答案:

答案 0 :(得分:3)

我想this可能会帮助您。

@RequestMapping(value = "/login")
public ModelAndView mainPage(RedirectAttributes redirectAttrs){
    Map<String> attributesMap = redirectAttrs.getFlashAttributes();

    return new ModelAndView("/login");

}

@RequestMapping(value = "/check")
public View checkLogin(RedirectAttributes redirectAttributes,
                       @RequestHeader(value = "username", required = false)String username,
                       @RequestHeader(value = "password", required = false)String password){

    redirectAttributes.addFlashAttribute("error", "Test message");
    return new RedirectView("/login");

}

希望这会有所帮助