具有RedirectView的Spring RedirectAttributes

时间:2019-06-15 22:14:48

标签: java spring

我有一个登录页面(/login),其中的表单具有对/login/check的操作

此检查页面被重定向回使用标题中的属性登录。

@RequestMapping(value = "/login")
public class LoginCtrl{

    @RequestMapping
    public ModelAndView mainPage(
                       @RequestHeader(value="error", required = false) String error){

        ModelAndView maw = new ModelAndView("login");
        maw.addObject("error", error);

        return maw;

    }

    //This page is loaded from login when form is actioned.
    @RequestMapping(value = "/check")
    public View checkLogin(RedirectAttributes redirectAttributes){

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

    }

}

这是login.jsp的表格:

<form action="/login/check" method="post">

    <div> <input type="text" name="username"> </div>

    <div> <input type="password" name="password"> </div>

    <div> <c:if test="${error != null}">${error}</c:if> </div>

    <div> <button type="submit">Sign In</button> </div>

</form>

我的问题是登录页面没有获得该属性error="Test message"

我已经在Tomcat上进行了测试,如果我向标题中带有属性error的登录页面发送请求,则该请求有效,并且消息已打印在页面中,但是我的代码不起作用。

1 个答案:

答案 0 :(得分:0)

由于您在/ login处理程序中设置了错误,因此您仅用空值覆盖它,因为没有提供标头(或标头中包含的任何内容)。删除该行,就可以了。