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