在spring mvc中更改URL

时间:2014-02-13 19:07:45

标签: java spring spring-mvc

我在网址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>

1 个答案:

答案 0 :(得分:3)

因此,您的表单应该login作为其操作,如果登录成功,实现此操作的方法应该重定向到欢迎。

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