Contacto

Nos puedes enviar un artículo a publicar (si te fue útil, seguro que a otros también).
Nos puedes sugerir temas/profundidad de interés.
correo-e - perfil

Busquedas

Session en SimpleFormController de Spring mvc

 En el artículo Formulario con Spring MVC se utilizó un controlador que extiende la clase SimpleFormController de Spring.

 En el ejemplo que se hizo en ese artículo, reescribimos el método onSubmit(command, errors) de la clase SimpleFormController, para el manejo del request del formulario.

 El método "onSubmit" tiene varias firmas (está sobrecargado), y nosotros seleccionamos uno, según la necesidad de la aplicación.

 Las diferentes firmas de onSubmit son:

     onSubmit(request, response, command, errors)
     onSubmit(command, errors)
     onSubmit(command)

 A continuación, las modificaciones realizadas al ejemplo en Formulario con Spring MVC , para guardar el usuario ingresado en el formulario en una session, y mostrar luego sus datos en una página.

 1) Modificación de UsuarioController
        Hay que reescribir el método onSubmit(request, response, command, errors) en sustitución del que se había utilizado.
   En este método, el único cambio es la obtención de la sesión desde el request, y el agregado del usuario con el nombre de atributo "usuarioEnSession".

            UsuarioController.java
 @Override
     protected ModelAndView onSubmit(Object command, BindException errors)  throws Exception {

  Usuario usuarioActual = (Usuario)command;
  /* Incluir aquí código para manejo del formulario */
  // se prepara datos para la página final
     Map model = new HashMap();
     model.put("titulo", "Datos Ingresados en el Formulario");
     model.put(getCommandName(), usuarioActual);


     // se agrega usuario en session con nombre: usuarioEnSession
   HttpSession session = request.getSession();
   session.setAttribute("usuarioEnSession", usuarioActual);


     return new ModelAndView(getSuccessView(), model) ;
  }
}


 2) Mostrar datos de sesión en la página.

  Solo a modo de ejemplo, vamos a mostrar los datos del usuario que está la session, en la página "index.jsp" (en el ejemplo a bajar, lo incluimos en todas las páginas)

    2.1) Se importa a la página la tag-lib "core"

         <%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>

    2.2) Mostramos los datos de la session, o un mensaje si no existen datos.

       <c:choose>
         <c:when test="${empty usuarioEnSession}">
            <c:out value="No se encuentra usuario en session" />
         </c:when>
         <c:otherwise>
           <c:out value="Datos en session de usuario" />
           ${usuarioEnSession}
        </c:otherwise>
     </c:choose>

  Nota: Para el uso de tag-lib puedes ver: Introducción a JSTL

   El nuevo proyecto TestSpring usando sesión (fuentes y .war) se puede descargar desde aquí.
   (Es una modificación del ejemplo usado en: Validar datos de formulario con Spring mvc )

No hay comentarios: