elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Guía actualizada para evitar que un ransomware ataque tu empresa


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  Java
| | | |-+  ¿Cómo recibir un controlador y enviar un modelo al mismo tiempo en spring?
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: ¿Cómo recibir un controlador y enviar un modelo al mismo tiempo en spring?  (Leído 1,946 veces)
WHK
Moderador Global
***
Desconectado Desconectado

Mensajes: 6.589


Sin conocimiento no hay espíritu


Ver Perfil WWW
¿Cómo recibir un controlador y enviar un modelo al mismo tiempo en spring?
« en: 31 Octubre 2016, 19:26 pm »

Hola, tengo un controlador y un template, estoy usando Spring boot y Thymeleaf.

Por lo que yo entiendo, para poder manipular formularios debo crear un modelo y este enviarselo como objeto al formulario, hasta aca todo bien, el problema está en la petición post ya que por un lado recibo el modelo como argumento de la función pero ya no tengo el modelo para poder enviar datos al template.

Controlador:
Código
  1. @Controller
  2. public class Main {
  3.  
  4.    @GetMapping("/")
  5.    public String httpGet(Model model){
  6.  
  7.        FormModel form_model = new FormModel();
  8.        model.addAttribute("form_model", form_model);
  9.        model.addAttribute("demo", "abc");
  10.  
  11.        return "main_template";
  12.    }
  13.  
  14.    @PostMapping("/")
  15.    public String httpPost(@ModelAttribute ModelForm form_model){
  16.  
  17.        FormModel form_model = new FormModel();
  18.  
  19.        // <-- Cómo envío model al template si no tengo model?
  20.        model.addAttribute("form_model", form_model);
  21.        model.addAttribute("demo", "abc");
  22.  
  23.        return "main_template";
  24.    }
  25. }

Mi template:
Código
  1. <!DOCTYPE html>
  2.    <head>
  3.        <title>Demo</title>
  4.    </head>
  5.    <body>
  6.        <form class="form-signin" action="#" method="post" th:action="@{/}" th:object="${form_model}">
  7.            <input th:field="*{email}" required="required" type="email" />
  8.            <input th:field="*{password}" type="password" />
  9.            <p th:text="${demo}"></p>
  10.            <button type="submit">Submit</button>
  11.        </form>
  12.    </body>
  13. </html>

Lo que yo entiendo acá: https://spring.io/guides/gs/validating-form-input/ es que primero tengo una funcion para recibir la petición get, como argumento viene un objeto llamado model el cual se encarga de enviar variables al template, como por ejemplo el objeto encargado del formulario, despues en la petición post pasa un solo argumento de modelo el cual es el objeto del formulario mas un validador, hasta acá todo bien, digamos que hubo un error en el formulario y necesito volver a cargar el formulario, necesito pasar otraves el objeto, pero no tengo como mandarlo porque no tengo el objeto llamado model y tampoco puedo iniciarlo desde la función, entonces que hago?

¿cómo puedo recibir el modelo del formulario en una petición post y al mismo tiempo comunicarme con el contenido en html enviando variables?


En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines