CRUD con Spring MVC Portlet (II): Creando el listado y las acciones de modificación y borrado

2
13700





CRUD con Spring MVC Portlet (II)





CRUD con Spring MVC Portlet (II): Creando el listado y las acciones de modificación y borrado

0. Índice de
contenidos.

1. Entorno

Este tutorial está escrito usando el siguiente entorno:

  • Hardware: Portátil Mac Book Pro 17″ (2,6 Ghz Intel Core
    i7, 8 GB
    DDR3)
  • Sistema Operativo: Mac OS X Snow Leopard 10.6.4
  • Spring MVC Portlet 3.0.4
  • Maven 2.2.1
  • Eclipse 3.6 (Helios) con M2Eclipse
  • Liferay 6.0.5
  • displaytags 1.2

2. Introducción

Este tutorial es la segunda parte del tutorial CRUD con Spring MVC Portlet, por lo que se recomienda al lector que se lo lea antes de continuar con este.

En este tutorial lo primero que vamos a hacer es crear una vista donde se muestren las personas que fuimos dando de alta en el anterior tutorial. Para vamos a ver como la librería displaytags nos puede ayudar en la tediosa tarea de tener que crear una listado con paginación y ordenación de los campos.

Y como no es lo mismo contarlo que picarlo, voy a implementar y explicar esto, pero espero no tardar 21 días. 😉

3. Configurando nuestro proyecto para trabajar con displaytags

Para quien no lo conozca ya, solo decir que esta librería es la salvación cuando tenemos que enfrentarnos al típico problema de las tablas con paginación y ordenación, aunque es mucho más y toda la información la podéis encontrar en http://www.displaytag.org/1.2/

Para configurar nuestro proyecto (maravillas de trabajar con Maven) tenemos que añadir las siguientes dependencias a nuestro pom.xml:

A fin de configurar el soporte de portlet de la librería tenemos que crear dentro de nuestra carpeta src/main/resources un fichero llamado displaytag.properties con el siguiente contenido:

4. Creando el listado de personas dadas de alta

Recordad que partimos del proyecto que creamos en el anterior tutorial de la serie y que incluso ya tenemos creada la vista a la que convenientemente llamamos listado_personas.jsp y que invocávamos desde la vista por defecto de nuestro portlet.

Lo primero que tenemos que hacer es editar este jsp, que recordad solo tenía hasta ahora un enlace al alta de la persona.

Aquí ponemos en juego la librería displaytags, para que nos muestre un listado simple de las personas, añadimos el siguiente código al jsp:

Con esta llamada la librería requiere un atributo en sesión llamado «listaPersonas» que contenga una lista de elementos de la clase Persona.

Para hacer esto editamos nuestro controlador a fin de recuperar el listado de personas de la base de datos e introducirlo en sesión:

Esto va a generar una tabla en HTML con la información de las personas almacenadas, para darle un aspecto más vistoso, podemos crear el fichero .css que añada estilo a la tabla pero no hay que olvidar importarlo desde el fichero css/main.css que ya existe en nuestro proyecto de esta forma si creamos el fichero displaytags.css tendríamos que añadir la siguiente línea:

Y este podría ser el resultado:

Ahora vamos a personalizar la tabla añadiendo nombres a las columnas, los enlaces para las acciones de edición y borrado, la paginación y la ordenación en memoria.

Esto se consigue con el siguiente código:

Fijaos como hemos indicado la paginación de la tabla simplemente añadiendo el atributo pagesize al valor que queramos mostrar por página y la ordenación añadiendo el atributo sortable a true en aquellos campos por lo que queremos ordenar la tabla, en nuestro caso, solo queremos poder ordenar por el nombre. El resultado es el siguiente:

Los nombres de las columnas las tenemos que añadir al fichero messages.properties y para internacionalizar los mensajes propios de la librería displaytags como los que se utilizan en la paginación. Para ello añadimos las siguientes claves dentro del fichero displaytags.properties:

En esta URL http://www.displaytag.org/1.2/configuration.html tenéis el listado completo de claves que se pueden internacionalizar.

5. Añadimos las acciones de edición y borrado

En este momento ya tenemos todo preparado para añadir la lógica de edición y borrado de la persona, de forma que si el usuario pulsa en una de estas acciones se muestre la pantalla de detalle de la persona para modificar los datos o borrar el registro.

Para ello vamos a añadir la lógica de redirección modificando el método redirectURL de nuestro controlador de esta forma:

Esto rellenará los campos del formulario con los datos del registro seleccionado y preparará la siguiente acción que vamos a capturar añadiendo las siguientes funciones en el controlador:

6. Conclusiones

Como veis vamos añadiendo lógica a medida que la vamos necesitando tratando de introducir el mínimo código posible y no reinventando la rueda con la utilización de librerías tan útiles como displaytags.

En el próximo tutorial vamos a ver cómo añadir validación al usuario y pruebas unitarias.

Cualquier duda o sugerencia en la zona de comentarios.

Saludos.


2 Comentarios

  1. Muy bueno tutorial , muchas gracias .

    Yo estoy intento hacer igual que el ejemplo pero sin utilizar maven . pero me sale este error
    16:31:53,256 ERROR [jsp:154] java.lang.NoClassDefFoundError: org/apache/commons/lang/UnhandledException
    at java.lang.Class.privateGetDeclaredConstructors(Class.java:2389)
    at java.lang.Class.getConstructor0(Class.java:2699)
    por favor me podias mandar el codigo fuete a este correo , ca.chaparro@hotmail.com
    Muchas gracias , saludos desde cali – colombia ..

  2. Hola
    Mi problema es que si bien muestra los datos, al momento de hacer un click en el nombre de la columna (para que ordene por ejemplo) o en el link «next», la aplicación se cae y lanza un error de página no encontrada (Error 404).
    Hay algo que no estoy haciendo bien es lo único que sé, pero no logro dar con lo que me falta.

    Gracias por el tutorial.

Dejar respuesta

Please enter your comment!
Please enter your name here