Get it on Google Play
22-05-2018
 

Uso de plantillas Freemarker en tus aplicaciones JavaEE

Freemarker es un motor de plantillas para aplicaciones Java totalmente Open Source. Un motor de plantillas nos permite desacoplar el formato de los datos en nuestras aplicaciones. También nos permite que nuestras aplicaciones sean mas configurables, por ejemplo, podemos hacer que nuestras facturas, mails, páginas sean totalmente configurables por el usuario.

Freemarker Engine

Freemarker Engine

Tal como se muestra en la imagen, un motor de plantillas se dedica combinar una plantilla con datos. Con Freemarker podremos definir plantillas que contengan bucles, condicionales y todo lo necesario para que nuestras páginas, mails, facturas, reports, etc. sean totalmente configurables. Podéis consultar el formato de las plantillas en la web.

Podemos descargar Freemarker directamente desde su página web o incluirlo como dependencia en Maven o Gradle entre otros. Se trata de un simple Jar muy ligero y sin dependencias.

Una vez lo tenemos en nuestra aplicación ya podemos configurar nuestro template:

Configuration cfg = new Configuration(Configuration.VERSION_2_3_27);
cfg.setDefaultEncoding("UTF-8");
cfg.setTemplateExceptionHandler(TemplateExceptionHandler.RETHROW_HANDLER);
cfg.setLogTemplateExceptions(false);
cfg.setWrapUncheckedExceptions(true);

Template t = new Template("templateName", "Aquí la plantilla en formato string", cfg);

El siguiente paso será crear el modelo(las variables/objetos que le vamos a pasar a la plantilla). Básicamente se trata de crear un Objeto Map:

Map<String, Object> model=new Hashtable<String, Object>();

model.put( "nombre", "Pepe");
model.put( "direccion", "Calle de Pepe, 15");
model.put( "pais", "Este");

Finalmente, ya con la plantilla y los datos el último paso es procesarlo todo y generar la salida:

Writer reg = new StringWriter();
t.process(model, reg);

/* Salida */
System.out.println( reg.toString() );

El uso de plantillas hace que nuestra aplicación sea mucho mas potente, ya que permite al usuario configurarse sus cosas prácticamente sin coste. Además, hace que todo el código sea mucho mas elegante.

Freemarker es muy rápido y, como ya he comentado, lo utilizo para gran cantidad de documentos(No solo páginas web) como: Mails, Facturas, reports, etc.

Si te ha servido, por favor comparte
 

Leave a Reply