Tips, Soluciones y Novedades en Tecnología

22/02/2016

Plantillas con Freemarker








Cuando programamos, aveces necesitamos utilizar Plantillas, como por ejemplo correos electrónicos, los que estan comenzando suelen usar un  String para concatenar el cuerpo y descripciones del asunto y si lo han estado usando pues a partir de leer este post, van a comenzar a utilizar una  plantilla para ese cometido.









Una de las librerías que mas difundidas para el uso de plantillas es Freemarker ahora un proyecto mas de la Apache Software Fundation.



A continuación vamos hacer un ejemplo del uso de esta motor de plantilla, haremos una plantilla para enviar un correo electrónico, es decir el body del correo.



 TemplateEmail.ftl






<html>
<head>
<title>Notificacion de Java for developers</title>
</head>
<body>
<h1>Estimado :${username} </h1>
<p>
<h2>Asunto : ${subjet}</h2>
<hr>
<i>
<a href="http://claros-java.blogspot.com">Java for Developers</a>
<br>
</i>
</body>
</html>




Primero necesitamos obtener las dependencias del repositorio de maven, para los que no usan maven lo pueden bajar directamente aquí: Jar Freemarker



Una vez descargado los descomprimen adjuntan como JAR externo a su libreria de su proyecto.



Continuando agregamos la dependencia a nuestro pom.xml


 




<!-- TEMPLATE-->
<dependency>
<groupId>org.freemarker</groupId>
<artifactId>freemarker</artifactId>
<version>2.3.20</version>
</dependency>







Con esto ya tenemos el .jar en nuestro proyecto, ya sea por maven o adjuntando el .jar manualmente.

el código para un HTML parseado es el siguiente:






 public static String loadTemplate() throws Exception {
String templateString = "";
Writer out = new StringWriter();
try {
Template template = getConfig().getTemplate("TemplateEmail.ftl");
Map<String, Object> data = new HashMap<>();
data.put("username", "Reynaldo Claros");
data.put("subjet", "Ejemplo de Plantilla con Freemarker");
template.process(data, out);
templateString = out.toString();
out.close();
} catch (java.io.IOException | freemarker.template.TemplateException e) {
log.error("error ({})", e.getMessage());
throw new IOException(e.getMessage());
}
return templateString;
}




Una vez ejecutado, la cadena que se obtiene es la siguiente:






<html>
<head>
<title>Notificacion Java for Developers</title>
</head>
<body>
<h1>Estimado :Reynaldo Claros </h1>
<p>
<h2>Asunto : Ejemplo de Plantilla con Freemarker</h2>
<hr>
<i>
<a href="http://claros-java.blogspot.com">Java for Developers</a>
<br>
</i>
</body>
</html>




Saludos cordiales.


0 comments:

Publicar un comentario