FreeMarker: Motor de plantillas

FreeMarkerFreeMarker es un motor para la generación de plantillas realmente potente y de fácil aprendizaje. El uso fundamental de  FreeMarker es proveer al desarrollador una forma sencilla de implementar el patrón MVC (Model View Controller) en páginas web dinámicas en Java (Servlets) y poder separar la lógica de la interfaz de una forma sencilla.

Con esto, por ejemplo, se pueden separar a los desarrolladores frontend y backend (diseño y lógica para hacerlo más entendible) simplemente con que ambos conozcan el nombre de las variables que se deben usar en cada caso. Esta separación es útil incluso para proyectos en los que ambos roles recaen sobre la misma persona, ya que ayuda a mantener la aplicación clara y fácil de mantener.

FreeMarker tiene algunas capacidades básicas de programación pero no debe usarse como tal en exceso y sólo cuando es realmente útil (iterar listas por ejemplo). El uso común debe ser que el Servlet prepare los datos que se van a mostrar y FreeMarker sólo genere páginas de texto que muestran los datos preparados utilizando las plantillas.

A continuación se muestra un diagrama para facilitar la comprensión de su funcionamiento: freemarker

De este modo, Freemarker se basa en el uso de etiquetas, con el formato ${VARIABLE}, de forma que dichas etiquetas se pueden insertar en código HTML o incluso en páginas JSP con el uso de taglibs. Por ejemplo:

<p>Hello World ${name}</p>

En artículos posteriores se verán muchos ejemplos y se profundizará en su uso de forma más detallada ya que este es el motor de plantillas que se va a usar en el tutorial de MongoDB con Java para implementar el patrón MVC junto con el framework Spark.

Espero que os haya resultado interesante este motor de plantillas, realmente simple y efectivo, que os puede ayudar en la creación de aplicaciones web dinámicas con Java.

Happy Minds!!!

Share on FacebookTweet about this on TwitterShare on LinkedInShare on RedditShare on Google+Digg thisShare on TumblrPin on PinterestBuffer this pagePrint this pageEmail this to someone