Un poco de Thymeleaf

Si ayer publicábamos ¿Qué es AngularJS?

Hoy vamos a dedicar un primer post introductorio a Thymeleaf

Thymeleaf (como AngularJS) es un motor de plantillas HTML (+XML), en este caso implementado sobre Java.

Con Thymeleaf podemos por fin olvidarnos de las inmanejables Tag Libraries de JSP y añadir dinamismo a nuestra maquetas HTML de forma sencilla (y manteniendo el HTML maquetado sin tener que recubrirlo como tag):

Entre sus principales características:

· Integrado con Spring y Spring MVC

· Sencillo de usar

· Extensible: a nivel de tags

· Soporte expresiones: OGNL (estándar) y SpEL (Spring):

http://www.thymeleaf.org/standarddialect5minutes.html

· Integrado con Spring Security:

· Mecanismo de caché

· Soporte internacionalización

· Integrado con Tiles:

· No tiene dependencias de API de Servlets

Seguro que este ejemplo os convence de sus virtudes: Dandelion DataTables (componente de Dandelion basado en DataTables JQuery plugin):

Usado con Tag Libraries tendríamos:

Con Thymeleaf mantendríamos el HTML decorándolo con tags th:

Renderizado

Si aún nos convencéis de sus virtudes: http://www.thymeleaf.org/thvsjsp.html

En este link podéis ver cómo usar Thymeleaf con Spring MVC 3, en resumen:

· Crear el ViewResolver:

· Configurar Spring MVC:

Scan:

TemplateResolver y TemplateEngine

· Crear Controlador:

· Crear Modelo (ModelAttribute) que usaré en páginas:

· Mapear métodos del controlador:

· Modificar el HTML para que maneje los ModelAttributes:

· En el HTML también se está internacionalizando la aplicación, cuando ponemos:

#{seedstarter.datePlanted} y los demás se busca en el fichero de internacionalización (Messages_es.properties) y al renderizar se sustituye por:

Otro concepto interesante es el de Extensión que nos permite crear dialectos.

La versión actual es la 2.0.16 (24 de febrero de 2013) aunque es un framework muy activo.

Tiene un ecosistema alrededor que incluye:

· Integración con Spring Security

· Integración con Tiles

· Demo de integración con Spring Roo

· Dandelion Tables:

· Módulo para Play 1.2

· Diversos Dialectos

· Archetype Maven

También ofrece un plugin para Eclipse que asiste en los dialectos usando el Eclipse Web Tools Platform HTML. Podéis descargarlo aquí.

Para usarlo desde Maven:

· groupId: org.thymeleaf

· artifactId: thymeleaf

· version: 2.0.16

· groupId: org.thymeleaf

· artifactId: thymeleaf-spring3

· version: 2.0.16

Como dependencias tiene:

· ognl 3.0.5 or later

· javassist 3.16.1-GA or later

· slf4j 1.6.1 or later

Respuestas

  1. Hey,

    Thanks for mentioning the project! 🙂

    Regards,
    Thibault (Dandelion-Datatables co-funder)

    1. It’s been a great pleasure.
      I am looking forward Dandelion Core and to publish another post 😉

  2. Avatar de Daniel Fernández
    Daniel Fernández

    Me uno a los agradecimientos de Thibault, pero en este caso desde Thymeleaf. Gracias por tu post. Paso a retwittearlo desde la cuenta del proyecto. Un saludo.

    1. El agradecimiento te lo tendría que dar yo a ti Daniel.
      Un auténtico lujo de solución (da pena que los estándares Java no vayan por aquí ;))

  3. […] con los posts sobre Thymeleaf (en la que ando cada vez más cerca de usarla ) y gracias a Daniel Fernández, su creador, […]

Replica a Daniel Fernández Cancelar la respuesta