jueves, 4 de agosto de 2016

Spring MVC Sesión Tutorial

Spring MVC Sesión Tutorial

gestión de sesiones es una de las piezas esenciales para cada aplicación web. Desde Spring MVC es un marco de gran alcance para un desarrollo web, que cuenta con herramientas propias y API para la interacción con las sesiones. Hoy tengo la intención de mostrar formas básicas de procesamiento de sesiones dentro de la aplicación Spring MVC. Eso es significar una transformación de las formas, la adición de objetos en una sesión, se presentan los objetos de la sesión en JSP. Yo haré todo lo posible, así que vamos a empezar.

Este tutorial Spring MVC sesión se basará en una de las entradas anteriores en mi blog, relacionados con el manejo de formularios . Voy a extender la aplicación mediante la adición de una lógica de sesión a la forma actual de estudiantes, crear una nueva página con un formulario y un único campo de texto en él. El texto del campo será procesada por un poco de controlador y se añade a la sesión. Con el fin de comprobar la funcionalidad de la sesión voy a mostrar los objetos de sesión en las páginas utilizando JSTL. La src desde el tutorial se puede descargar en el final del tutorial.
Formar con el único campo de texto
En primer lugar tengo que crear una vista y el controlador. Voy a empezar desde la creación de la vista y después de eso voy a demostrar el controlador correspondiente con la lógica de la sesión.
01...
02<h2>Adding of a String into the session</h2>
03
04<form action="remember.html" method="post">
05<table>
06<tbody><tr>
07<td>To remember:</td>
08<td><input name="thoughtParam" type="text"></td>
09</tr>
10<tr>
11<td><input type="submit"></td>
12<td></td>
13</tr>
14</tbody></table>
15</form>
16<a href="${pageContext.request.contextPath}/">Main page</a>
17...
Ahora necesito para desarrollar el controlador para manejar el formulario. Habrá dos métodos para la manipulación de las solicitudes: la primera es el responsable de la navegación de la página, la segunda está relacionada con la actividad de la sesión.
01@Controller
02@SessionAttributes("thought")
03public class SingleFieldController {
04
05    @RequestMapping(value="/single-field")
06    public ModelAndView singleFieldPage() {
07        return new ModelAndView("single-field-page");
08    }
09     
10    @RequestMapping(value="/remember"
11    public ModelAndView rememberThought(@RequestParam String thoughtParam) {
12        ModelAndView modelAndView = new ModelAndView();
13        modelAndView.addObject("thought", thoughtParam);
14        modelAndView.setViewName("single-field-page");
15        return modelAndView;
16    }
17     
18}
Este es un simple controlador de Spring MVC con el @SessionAttributes anotación extra. Se indica que en los métodos del controlador se puede asignar algunos valores a los argumentos de la anotación. En este ejemplo, declaré sólo un atributo de sesión con el nombre de " pensamiento ". Eso es significa que puedo poner un poco de objeto en ModelAndView utilizando el método addObject (), y que se añadirá a la sesión si el nombre del objeto será el mismo que el nombre del argumento en @SessionAttributes. La última Thinng lo que debería hacer es añadir un enlace a la nueva página en el index.jsp:
1...
2    <h1>Home page</h1>
3    <p>This is Home page.</p>
4    <p>Don't forget: ${thought}</p>
5    <p>
6        <a href="person-form.html">Person page</a> <br>
7        <a href="single-field.html">Single field page</a>
8    </p>
9...
En fin, para comprobar que funciona correctamente la sesión, es necesario agregar siguiente código en las vistas existentes (de un solo campo page.jsp, ...):
1<p>Don't forget: ${thought}</p>
En las siguientes capturas de pantalla se puede ver el resultado del trabajo código:
procesamiento de sesiones Spring MVC
Y los resultados:
Spring MVC resultado sesión JSTL
Y
Spring MVC resultado sesión JSTL 1

Adición de un objeto personalizado en la sesión

En esta sección voy a mostrar cómo añadir un objeto personalizado en la sesión, y cómo mostrar las propiedades del objeto en JSP. El papel de objeto personalizado jugará persona objeto. En primer lugar me modificaré el controlador persona existente:
01@Controller
02@SessionAttributes("personObj")
03public class PersonController {
04
05    @RequestMapping(value="/person-form")
06    public ModelAndView personPage() {
07        return new ModelAndView("person-page""person-entity"new Person());
08    }
09     
10    @RequestMapping(value="/process-person")
11    public ModelAndView processPerson(@ModelAttribute Person person) {
12        ModelAndView modelAndView = new ModelAndView();
13        modelAndView.setViewName("person-result-page");
14         
15        modelAndView.addObject("pers", person);
16        modelAndView.addObject("personObj", person);
17         
18        return modelAndView;
19    }
20     
21}
La comparación con la última versión he añadido dos nuevas cadenas:
1...
2@SessionAttributes("personObj")

3...
4modelAndView.addObject("personObj", person);
5...
El resultado de la ejecución de código es lo siguiente:
Spring MVC objeto de sesión

Y
Spring MVC resultado objeto de sesión
Este es el final de la primavera MVC sesión de tutoría. Y como lo había dicho antes, me importa un enlace a las fuentes del proyecto. Todo lo he mencionado en el post es sólo una parte de las cosas que usted debe saber acerca de las sesiones, más adelante voy a escribir un post sobre diferentes características importantes.


0 comentarios:

Publicar un comentario