我试图在成功登录后重定向我的请求,涉及 2 个页面,通常是login和loginsuccess
这是登录映射的控制器类
@Controller
@SessionAttributes("userObj")
@RequestMapping("/user")
public class UserController {
@RequestMapping(value = "/login", method = RequestMethod.GET)
public ModelAndView initLoginView(ModelAndView mv) {
mv.addObject("userObj", new User());
mv.setViewName("user/login");
return mv;
}
@RequestMapping(value = "/login", method = RequestMethod.POST)
public ModelAndView loginUser(ModelAndView mv, @ModelAttribute("userObj") User user, BindingResult result, SessionStatus status) {
System.out.println(user.getUserName());
System.out.println(user.getPassword());
mv.addObject("userObj", user);
mv.setViewName("redirect:/user/loginSuccess");
return mv;
}
}
我收到404, resource not found错误,所以我怀疑我从 POST 方法返回的 ModelAndView 对象是罪魁祸首,所以我将返回值更改为
mv.setViewName("user/loginSuccess");
return mv;
从
mv.setViewName("redirect:/user/loginSuccess");
return mv;
并成功加载页面,我正在尝试实现避免重复表单提交的“发布/重定向/获取设计模式”,我看到很多使用重定向的示例: 在ModelAndView 对象中,但不是我看到 404 异常问题。请提供任何帮助。并提前致谢。
编辑:当我做出这样的返回语句时mv.setViewName("user/loginSuccess"); 刷新loginSucsess页面 时收到此警告