我不知道在modelAndView中发布后如何重定向
@PostMapping("/admin/nuevo_equipo")
public ModelAndView createEntrenador(@Valid Equipo equipo, BindingResult bindingResult) {
ModelAndView model = new ModelAndView();
equipoService.save(equipo);
model.addObject("msg", "entrenador creado con exito");
model.setViewName("/administrador/nuevo_equipo");
return model;
}
我该怎么办?
答案 0 :(得分:2)
正常重定向,如下所示。
@RequestMapping(value = "/redirect", method = RequestMethod.GET)
public ModelAndView method() {
return new ModelAndView("redirect:" + url);
}
通过重定向发送数据(闪存属性数据在URL中不可见):
@RequestMapping(value="/someURL", method=GET)
public String yourMethod(RedirectAttributes redirectAttributes)
{
...
redirectAttributes.addAttribute("rd", "rdValue");
redirectAttributes.addFlashAttribute("fa", faValue);
return "redirect:/someOtherURL";
}
正如我从代码中看到的那样,您还尝试发送数据以及重定向,因此请使用第二种方法。
也请参见此spring-redirectattributes-addattribute-vs-addflashattribute
答案 1 :(得分:0)
有几种可能...在您的情况下,很合适
@PostMapping("/admin/nuevo_equipo")
public ModelAndView createEntrenador(@Valid Equipo equipo, BindingResult bindingResult, ModelMap model) {
equipoService.save(equipo);
model.addAttribute("msg", "entrenador creado con exito");
return new ModelAndView("redirect:/REDIRECT_URL", model);
}
重要的是,您的重定向是对新URL的重定向,并且您不会直接以新视图进行响应。