Spring MVC:如何在成功登录后转发到特定页面?

Spring MVC: How do I forward to a specifc page after a successful Login?

Spring MVC 的新手,我试图在登录后转发到我的应用程序的特定页面。

我该怎么做?

是否使用WebSecurityConfigurerAdapter

如果您正在使用 spring-security,您可以将其映射到目标 url

类似 -

   <form-login login-page="/login" authentication-failure-url="/denied"
        username-parameter="username" password-parameter="password"
        default-target-url="/home" />

这个post详细介绍一下。

http://www.journaldev.com/2736/spring-mvc-security-example-using-in-memory-userdetailsservice-and-jdbc-authentication

使用@RequestMapping注解转发到特定页面。所以在 Controller class 中你会有类似的东西:

@RequestMapping(value = "/menu", method = RequestMethod.POST)
public String showMainMenu(
        UserBean user, BindingResult result) {

    if (result.hasErrors()) {
        return "login";
    }
    try {
        loginMethod();
        return "menu";
    } catch (Exception e) {
        e.printStackTrace();
    }
}

(其中 loginMethod() 是来自您的登录逻辑所在的另一个 class 的方法)。并且控制器在成功登录后转发到 /menu URL,或者如果在登录尝试时出现错误则停留在 /login 页面上。

登录成功后,您可能只是重定向到一些不同的请求映射。

  if(successfulLogin){
    return "redirect:../abc/differenturl";
    }