重定向无法正常工作。我无法理解这个问题,因为我非常喜欢春天。
这是我的控制器,当我提交我的表单然后(“schoolform”)submitForm控制器被调用,它重定向到另一个控制器到('形式')表单控制器,但它转到(“登录”)登录控制器。我不知道为什么? 我想将schoolform重定向到表单控制器。
@RequestMapping(value = "/schoolform", method = RequestMethod.POST)
public String submitForm(@ModelAttribute("school")School school,Model model,HttpServletRequest request,HttpServletResponse resp) {
Authentication auth = SecurityContextHolder.getContext().getAuthentication();
schoolService.update(school);
System.out.println("Form submitted finaly, No further changes can be made.");
return "redirect:/form.html";
}
@RequestMapping(value = "/form", method = RequestMethod.GET)
public String form(Model model,HttpServletRequest request) {
HttpSession session = request.getSession(true);
Authentication auth = SecurityContextHolder.getContext().getAuthentication();
String name = auth.getName(); // get logged in username
System.out.println(name+"--------form page-----");
}
@RequestMapping(value = "/login", method = RequestMethod.GET)
public ModelAndView login(
@RequestParam(value = "error", required = false) String error,
@RequestParam(value = "logout", required = false) String logout) {
logger.info("------------------LoginController ---------------");
System.out.println("LoginController ");
ModelAndView model = new ModelAndView();
if (error != null) {
model.addObject("error", "Invalid username and password!");
}
if (logout != null) {
model.addObject("msg", "You've been logged out successfully.");
}
model.setViewName("login");
return model;
}
答案 0 :(得分:0)
我认为它无效,因为您尝试重定向到网址的方法接受POST
个请求。您无法从POST
方法 UNLESS 重定向您有一个接受GET
方法的处理程序方法,并且其@RequestMapping
接受您尝试重定向的值。
基本上,仅接受POST请求的方法submitForm
正试图重定向到/form.html
。现在,您的控制器中没有接受/form.html的方法,所以现在您必须在控制器类中有一个方法,其映射值为/form.html
并且它接受GET
个请求:
@RequestMapping(value = "/form.html", method = RequestMethod.GET)
public String methodName(arg1 ..){ ... }