Apache FreeMarker es una librería java que nos permite generar documentos, emails, código, ... a partir de plantillas.
Empezamos creando y configurando nuestra instancia de FreeMarker:
Empezamos creando y configurando nuestra instancia de FreeMarker:
Configuration cfg = new Configuration(Configuration.VERSION_2_3_23); cfg.setDirectoryForTemplateLoading(new File(myTemplatesFolder)); cfg.setTagSyntax(Configuration.SQUARE_BRACKET_TAG_SYNTAX); cfg.setDefaultEncoding("UTF-8"); cfg.setNumberFormat("computer"); //To iterate maps in templates with entrySet() (eh. [#list configs as conf]) cfg.setObjectWrapper(new BeansWrapperBuilder(Configuration.VERSION_2_3_23).build());En el directorio donde tenemos las plantillas (en nuestro ejemplo la variable myTemplatesFolder indica el directorio), podemos crear nuestra primera plantilla ("myTemplate.ftl"):
[#-- @ftlvariable name="config" type="com.examples.Config" --]Si queremos generar un String a partir de nuestra plantilla:${config.env} [#list config.params as param]${param} [/#list]
data.put("config", config); try (StringWriter writer = new StringWriter()) { Template template = cfg.getTemplate("myTemplate.ftl"); template.process(data, writer); return writer.toString(); }Si lo que queremos es generar un fichero:
data.put("config", config); try (Writer fileWriter = new FileWriter(new File(myOutFile))) { Template template = this.cfg.getTemplate("myTemplate.ftl"); template.process(data, fileWriter); }Yo he utilizado Maven, y he tenido que incluir la siguiente dependencia:
org.freemarker freemarker 2.3.23