Spring MVC重定向失败
我想用Spring MVC+Mybatis做一个登录页面,控制器如下:Spring MVC重定向失败,spring,jsp,spring-mvc,Spring,Jsp,Spring Mvc,我想用Spring MVC+Mybatis做一个登录页面,控制器如下: @Controller public class LoginController { private final UserService userService; @Autowired public LoginController(@Qualifier("userService") UserService userService) { this.userService = userService; } @Requ
@Controller
public class LoginController {
private final UserService userService;
@Autowired
public LoginController(@Qualifier("userService") UserService userService) {
this.userService = userService;
}
@RequestMapping(value = "/login")
public ModelAndView Login(String username, String password,
ModelAndView mv, HttpSession session) {
User user = userService.login(username, password);
// **This is where problems occured**
if (user != null) {
session.setAttribute("user", user);
mv.setView(new RedirectView("/main"));
} else {
mv.addObject("message","Login failed.");
mv.setViewName("loginForm");
}
return mv; // with correct value, but responses 404 error
}
@RequestMapping(value = "/loginForm")
public String LoginForm() {
return "loginForm";
}
@RequestMapping(value = "/main")
public String Main(Model model) {
return "main";
}
}
我有两个jsp文件:
/WEB-INF/jsp/loginForm.jsp
/WEB-INF/jsp/main.jsp
无论我是否正确提交登录表单,都会出现404错误:
HTTP Status 404 - /WEB-INF/jsp/login.jsp
在调试模式下运行时,mv返回的“/main”正确,因此我感到困惑
下面的代码可以工作,但我不能再添加错误消息来查看了
@RequestMapping(value = "/login")
public String Login(String username, String password, HttpSession session) {
User user = userService.login(username, password);
if (user != null) {
session.setAttribute("user", user);
return "redirect:/main";
} else {
session.setAttribute("message","Login failed");
return "redirect:/loginForm";
}
}
我也面临同样的问题,但这对我有帮助
ModelAndView model = new ModelAndView();
if (user != null) {
session.setAttribute("user", user);
model = new ModelAndView("/main");
} else {
mv.addObject("message","Login failed.");
model = new ModelAndView("/loginForm");
}
return model;
您使用的是哪种Spring配置,基于XML还是基于Java?已解决,谢谢,原因是一个空参数。我知道这是有效的,我代码中的参数mv是空的