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