Si encuentras alguna parte que no comprendes puedes dejarlo en los comentarios y te responderemos lo más rápido posible.
Solución:
Uso Spring 3.2.3 y así es como resolví un problema similar.
1) Se agregaron RedirectAttributes redirectAttributes a la lista de parámetros del método en el controlador 1.
public String controlMapping1(
@ModelAttribute("mapping1Form") final Object mapping1FormObject,
final BindingResult mapping1BindingResult,
final Model model,
final RedirectAttributes redirectAttributes)
2) Dentro del método se agregó código para agregar flash attribute redirigir atributos redirectAttributes.addFlashAttribute("mapping1Form", mapping1FormObject);
3) Luego, en el segundo parámetro de método de uso del controlador anotado con @ModelAttribute para acceder a los atributos de redirección
@ModelAttribute("mapping1Form") final Object mapping1FormObject
Aquí está el código de muestra del Controlador 1:
@RequestMapping(value = "/mapping1" , method = RequestMethod.POST)
public String controlMapping1(
@ModelAttribute("mapping1Form") final Object mapping1FormObject,
final BindingResult mapping1BindingResult,
final Model model,
final RedirectAttributes redirectAttributes)
redirectAttributes.addFlashAttribute("mapping1Form", mapping1FormObject);
return "redirect:mapping2";
Desde el controlador 2:
@RequestMapping(value = "/mapping2", method = RequestMethod.GET)
public String controlMapping2(
@ModelAttribute("mapping1Form") final Object mapping1FormObject,
final BindingResult mapping1BindingResult,
final Model model)
model.addAttribute("transformationForm", mapping1FormObject);
return "new/view";
Usando solo redirectAttributes.addFlashAttribute(...) -> "redirect:..."
funcionó también, no tuvo que “reinsertar” el modelo attribute.
¡Gracias, aborsky!
Creo que la forma más elegante de hacerlo es implementar Flash Scope personalizado en Spring MVC.
la idea principal para el alcance de flash es almacenar datos de un controlador hasta la próxima redirección en el segundo controlador
Consulte mi respuesta sobre la pregunta de alcance personalizado:
Bean de alcance personalizado Spring MVC
Lo único que falta en este código es la siguiente configuración xml: