2014-02-13 38 views
4

我在URL http://localhost:8080/myproject/login有一个登录表单是这样的:更改URL

<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"; 
} 

的问题是,当登陆不正确,我得到这个URL http://localhost:8080/myproject/welcome但我想获得http://localhost:8080/myproject/login并获得welcome以防万一登录是正确的。

1日更新

在我的情况下使用

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 

我设置一个属性,我得到的参数。

月2日更新

我固定这个问题:

<c:if test="${ param.errorlogin == true }"> 
<label class="loginerror">Login Error</label> 
</c:if> 
+2

查找到POST-REDIRECT-GET。 –

+1

你调试,以确保它实际上击中'回报“登录”'一部分? – SergeyB

回答

3

你的形式因此应该有login作为其行动,并实施这一行动的方法应该重定向到欢迎如果登录成功的。

@RequestMapping(value = "/login", method = ResquestMethod.POST) 
public String handleLogin([...]) { 
    ... 
    if (successful) { 
     return "redirect:/welcome" 
    } 
} 
+0

我我的情况下,最好是这样'返回“重定向:/登录”'但i前必须添加一个属性这样'model.put(“errorlogin”,TRUE);'来处理这个'<标签类= “loginerror”>登录错误'但错误信息这么想的显示,而是我得到这个URL通过'http://本地主机:8080/pagesjaunes /登录? errorlogin = TRUE; – Youssef

+0

更新我的问题:) – Youssef