Get it on Google Play
Tu partner Freelance para tus proyectos IT

Renderizar contenidos usando plantillas manualmente con Spring Boot

22-01-2020
renderizar-plantillas-manualmente-springboot

renderizar-plantillas-manualmente-springboot

Spring Boot nos hace la vida muy fácil a la hora de crear aplicaciones web y APIs. Con tan solo crear un objeto ModelAndView el framework ya sabe que tiene que renderizar y devolver el contenido como respuesta a una petición.

Pero a veces, queremos renderizar el contenido manualmente, por ejemplo, porque tiene que ir dentro de un objeto JSON y no devolver un contenido html. De hecho, esto me lo he encontrado en un proyecto hace poco y la solución no fue sencilla de encontrar.

Si queremos renderizar un contenido lo podemos hacer de la forma siguiente:

/* Declaramos el atributo que será injectado por Spring Boot */
@Autowired
private TemplateEngine templateEngine;

/* Creamos el contexto con las variables que le pasamos a la vista */
Context ctx = new Context();
ctx.setVariable("name", "valor name 1" );
ctx.setVariable("img", "valor img 1" );

String out=templateEngine.process("mi-plantilla", ctx);

El texto comentado es sencillo de entender, básicamente Spring Boot nos injecta un objeto ‘TemplateEngine’ que nos ofrece el método ‘process’ con dos parametros: El primero el nombre de la plantilla a renderizar(Que debe estar en la carpeta templates de la carpeta de recursos con terminación ‘.html’) y el segundo parámetro que es el contexto con las variables que injectamos para renderizar la plantilla.

Sencillo y fácil, cuando se sabe, como todo en el mundillo…

Si te ha servido, por favor comparte
 

Leave a Reply