Java Spring MVC:在控制器转发之后,浏览器显示来自旧控制器的url,而不是它转发的控制器的url

时间:2016-04-19 21:49:52

标签: java spring url controller forward

成功登录后,下面的控制器方法会转发到另一个控制器以提供模型和视图。这会产生罚款 - 但浏览器的网址会显示" http://localhost:8080/AppName/loginSuccessForward"在转发完成后,即使它从转发的控制器显示视图。

有没有办法让浏览器显示转发的控制器的网址?如果它像我一样工作,用户将看到" http://localhost:8080/AppName/l/l/profile"或" http://localhost:8080/AppName/t/t/profile"在浏览器中,取决于他或她是哪一类用户。

@RequestMapping("/loginSuccessForward")
public String loginForward(Principal principal){
    if (principal == null){
        return "/";
    } else {
        if (user1Service.getUser(principal.getName()) != null){
            return "forward:/t/t/profile";
        } else if (user2Service.getUser(principal.getName()) != null){
            return "forward:/l/l/profile";
        } else {
            return "/";
        }
    }           
}

对于上下文:这是基于Spring MVC构建的(虽然看起来像是一般的Java问题)。