Spring-mvc:控制器在成功登录后无法加载新页面

时间:2015-02-09 15:10:31

标签: java spring jsp spring-mvc controller

使用Spring MVC我创建了一个名为login.jsp的登录页面和我的主页index.jsp。在登录页面上,我有2个用于用户名和密码的文本字段,以及一个用于提交数据的按钮。将针对数据库检查值,并且对于有效的id,将显示index.jsp,而错误将被重定向到单独的exception.jsp。问题是浏览器不会显示index.jsp或exception.jsp。它只停留在登录页面上。但是,对POST操作的HTTP响应包含正确页面的代码。浏览器根本无法显示它。这是我的控制器的片段:

// -------------- Login ----------------

@RequestMapping(value = "/login", method = RequestMethod.GET)
public String showLogin(Locale locale, Model model) {
    logger.info("Welcome to login page!");
    return "login";
}


@RequestMapping(value = "/login", method = RequestMethod.POST, consumes = "application/json")
public String doLogin(@RequestBody LoginBean bean) throws Exception {
    logger.info("Trying to log in. User: " + bean.getBenutzername() + " Password: " + bean.getPasswort());
    long returnedIndex = inputManager.verifyLogin(bean);
    // check db;
    if(returnedIndex != -1){
        user = returnedIndex;
        logger.info("Success! Welcome, " + bean.getBenutzername());
        return "redirect:/index";
    }
    else {
        logger.info("Failed to log in");
        throw new Exception("User or password incorrect. Try again.");
    }
}

// -------------- Index ----------------

@RequestMapping(value = "/index", method = RequestMethod.GET)
public String showHome(Locale locale, Model model) throws Exception {
    logger.info("Welcome to home page!");
    outputManager.createBeans(1l);
    return "index";
}

// -------------- Exceptions ----------------
@ExceptionHandler(Exception.class)
public ModelAndView handleAllException(Exception ex) {
    logger.info("Catching exception: " + ex.getMessage());
    ModelAndView model = new ModelAndView("exception");
    model.addObject("msg", ex.getMessage());
    return model;
}

1 个答案:

答案 0 :(得分:0)

问题实际上是在前端。我们使用AngularJS,并且控制器中的方法返回的值未正确解释。我不确定到底出了什么问题(我没有在前端工作),但我认为我们使用的脚本只负责修改单页应用程序中的部分网页,而不是从一页跳到另一页。