Saltar al contenido

como pasar modelo attributes de un controlador Spring MVC a otro controlador?

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:



  
    
  

valoraciones y comentarios

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *