FreeMarker


FreeMarker es un motor de plantillas gratuito basado en Java , que originalmente se centró en la generación dinámica de páginas web con arquitectura de software MVC . Sin embargo, es un motor de plantillas de propósito general, sin dependencia de servlets o HTTP o HTML , y por lo tanto se usa a menudo para generar código fuente, archivos de configuración o correos electrónicos.

FreeMarker tuvo una historia algo agitada hasta aproximadamente 2004, causada por cambios de paradigmay otros cambios significativos en múltiples ocasiones. FreeMarker 1 (ahora conocido como FreeMarker Classic, un proyecto separado) fue escrito originalmente por Benjamin Geer y Mike Bayer. Desde 2002, el nuevo líder del proyecto fue Jonathan Revusky, quien lanzó FreeMarker 2, que inició una secuencia de varios cambios sustanciales. El objetivo principal de los cambios era hacer que el lenguaje de la plantilla fuera más estricto, es decir, detectar la mayor cantidad posible de errores tipográficos y otros errores típicos. Además, se introdujo la envoltura automática de objetos, junto con el avance gradual del sistema de tipos del lenguaje de plantillas. El lenguaje ha ganado muchas características de usuario avanzado, como capacidades de programación de macros y espacios de nombres más potentes. El idioma ha alcanzado un estado bastante estable con la versión 2.3, lanzada en el tercer trimestre de 2004. A partir de 2016, el producto sigue siendo compatible con versiones anteriores.No se esperan cambios significativos incompatibles con versiones anteriores en la serie FreeMarker 2 en el futuro.

A fines de 2015, FreeMarker fue otorgado a Apache Software Foundation , donde ingresó a Apache Incubator , y en 2018-03-21 se convirtió en un proyecto Apache totalmente aceptado.

Variables como "nombre" y "mensajes" provienen de fuera de la plantilla y, por lo tanto, el autor de la plantilla tiene que ocuparse únicamente de los problemas de presentación. La plantilla sigue siendo la misma independientemente de si estas variables provienen de una base de datos o de una cookie o se calculan de cualquier otra manera. Además, la API Java exacta (y por lo tanto la clase) de los valores se puede ocultar en FreeMarker utilizando una técnica llamada envoltura de objetos. Por ejemplo, "messages" parece ser una lista o matriz de JavaBeans que tienen propiedades "from" y "body", pero también podría ser algo muy diferente, y la plantilla no se ve afectada (siempre que un contenedor de objetos adecuado se utiliza).