Articulo de referencia

Marcador gratuito

Apache FreeMarker es un motor de plantillas gratuito basado en Java , originalmente enfocado en la generación dinámica de páginas web con arquitectura de software MVC . Ahora pu...

Apache FreeMarker es un motor de plantillas gratuito basado en Java , originalmente enfocado en la generación dinámica de páginas web con arquitectura de software MVC . Ahora puede generar texto basado en plantillas y datos cambiantes. [ 1 ] No tiene dependencia de servlets , HTTP ni HTML . [ 2 ]

Se suele utilizar para generar código fuente, archivos de configuración o correos electrónicos.

Historia

FreeMarker tuvo una historia algo agitada hasta aproximadamente 2004, debido a cambios de paradigma y otras modificaciones significativas en múltiples ocasiones. FreeMarker 1 (ahora conocido como FreeMarker Classic, un proyecto independiente) fue escrito originalmente por Benjamin Geer y Mike Bayer. A partir de 2002, Jonathan Revusky se hizo cargo del proyecto y lanzó FreeMarker 2, lo que dio inicio a una serie de cambios sustanciales. El objetivo principal de estos cambios fue hacer que el lenguaje de plantillas fuera más estricto, es decir, detectar la mayor cantidad posible de errores tipográficos y otros errores comunes. También se introdujo el ajuste automático de objetos, junto con un avance gradual del sistema de tipos del lenguaje de plantillas. El lenguaje ha incorporado muchas funciones avanzadas, como capacidades de programación de macros más potentes y espacios de nombres. El lenguaje alcanzó un estado bastante estable con la versión 2.3, lanzada en el tercer trimestre de 2004. A fecha de 2022, el producto sigue siendo compatible con versiones anteriores. No se esperan cambios significativos que dejen de ser compatibles con versiones anteriores en la serie FreeMarker 2 en el futuro.

A finales de 2015, FreeMarker fue concedido a la Apache Software Foundation , donde ingresó en la Apache Incubator, y el 21 de marzo de 2018 se convirtió en un proyecto Apache plenamente aceptado.

Ejemplo

La siguiente plantilla:

< html > < body > < p > ¡Hola ${name}! Tienes los siguientes mensajes: < #list messages as m> < p >< b > ${m.from}: </ b > ${m.body} </ p > < /#list> </ p > </ body > </ html >

El procesamiento mediante FreeMarker producirá algo como esto:

< html > < body > < p > ¡Hola Joe! Tienes los siguientes mensajes: < p >< b > Tim: </ b > ¡No olvides traer los artículos de la conferencia! </ p > < p >< b > Cindy: </ b > ¿Puedes visitarme esta tarde? </ p > < p >< b > Richard: </ b > ¡No olvides los artículos esta vez! </ p > </ p > </ body > </ html >

Variables como "nombre" y "mensajes" provienen de fuera de la plantilla, por lo que el autor de la plantilla solo debe ocuparse de los problemas de presentación. La plantilla permanece inalterable independientemente de si estas variables provienen de una base de datos, una cookie o se calculan de cualquier otra forma. Además, la API Java exacta (y, por lo tanto, la clase) de los valores se puede ocultar en FreeMarker mediante una técnica llamada encapsulación de objetos. Por ejemplo, "mensajes" parece ser una lista o matriz de JavaBeans con las propiedades "from" y "body", pero podría ser algo muy diferente, y la plantilla no se ve afectada (siempre que se utilice una encapsulación de objetos adecuada).

Véase también

Referencias

  1. Cardoza, Christina (27 de marzo de 2017). "Actualización de Apache Calcite, FreeMarker, Gora, Phoenix y Solr" . SD Times . Consultado el 5 de febrero de 2024 .
  2. ^ Mittapalli, Jishnu Saurav; Arturo, Menaka Pushpa (2021). "Encuesta sobre motores de plantillas en Java". ITM Web de Conferencias . 37 . EDP ​​Ciencias: 01007. doi : 10.1051/itmconf/20213701007 . ISSN 2271-2097 . 
  • Sitio web oficial