帖子模型和视图不起作用后重定向

时间:2018-12-05 10:06:15

标签: spring spring-mvc model-view-controller

我不知道在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;
}

我该怎么办?

2 个答案:

答案 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的重定向,并且您不会直接以新视图进行响应。