我在网址http://localhost:8080/myproject/login
中有一个这样的登录表单:
<form:form method="POST" modelAttribute="auth" action="welcome" id="formlogin">
[...]
</form:form>
和这样的控制器:
@RequestMapping(value = "/welcome")
public String welcome([...]) {
[...]
if(logins.size() != 1) {
return "login";
}
[...]
return "welcome";
}
问题是当登录不正确时我得到了这个网址http://localhost:8080/myproject/welcome
,但我希望获得http://localhost:8080/myproject/login
并获取welcome
,以防登录正确。
第一次更新
在我的情况下,使用
的最佳方式return "redirect:/login"
但在我必须添加像这样的属性之前
model.put("errorlogin", true);
要处理这个
<c:if test="${ errorlogin == true }">
<label class="loginerror">Login Error</label>
</c:if>
但是错误消息没有显示,而是我得到了这个URL
http://localhost:8080/pagesjaunes/login?errorlogin=true
我设置了一个属性,我得到一个参数。
第二次更新
我解决了这个问题:
<c:if test="${ param.errorlogin == true }">
<label class="loginerror">Login Error</label>
</c:if>
答案 0 :(得分:3)
因此,您的表单应该login
作为其操作,如果登录成功,实现此操作的方法应该重定向到欢迎。
@RequestMapping(value = "/login", method = ResquestMethod.POST)
public String handleLogin([...]) {
...
if (successful) {
return "redirect:/welcome"
}
}