我有一个登录页面(/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
的登录页面发送请求,则该请求有效,并且消息已打印在页面中,但是我的代码不起作用。
答案 0 :(得分:0)
由于您在/ login处理程序中设置了错误,因此您仅用空值覆盖它,因为没有提供标头(或标头中包含的任何内容)。删除该行,就可以了。