package br.gov.servicos.config;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.autoconfigure.thymeleaf.ThymeleafProperties;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.thymeleaf.spring4.SpringTemplateEngine;
import org.thymeleaf.spring4.templateresolver.SpringResourceTemplateResolver;
import org.thymeleaf.spring4.view.ThymeleafViewResolver;
import static org.springframework.http.MediaType.APPLICATION_XML_VALUE;
import static org.springframework.http.MediaType.TEXT_HTML_VALUE;
@Configuration
public class ThymeleafConfig {
@Autowired
ThymeleafProperties properties;
@Bean
public ThymeleafViewResolver thymeleafViewResolver(SpringTemplateEngine templateEngine) {
ThymeleafViewResolver resolver = new ThymeleafViewResolver();
resolver.setTemplateEngine(templateEngine);
resolver.setCharacterEncoding("UTF-8");
resolver.setContentType(TEXT_HTML_VALUE);
resolver.setExcludedViewNames(new String[]{"*.xml"});
return resolver;
}
@Bean
public ThymeleafViewResolver xmlThymeleafViewResolver(SpringTemplateEngine templateEngine) {
ThymeleafViewResolver resolver = new ThymeleafViewResolver();
resolver.setTemplateEngine(templateEngine);
resolver.setCharacterEncoding("UTF-8");
resolver.setContentType(APPLICATION_XML_VALUE);
resolver.setExcludedViewNames(new String[]{"*.html"});
return resolver;
}
@Bean
public SpringResourceTemplateResolver defaultTemplateResolver() {
SpringResourceTemplateResolver resolver = resolver();
resolver.setSuffix(".html");
resolver.setTemplateMode("HTML5");
resolver.setOrder(0);
resolver.setName("HTML template resolver");
return resolver;
}
@Bean
public SpringResourceTemplateResolver xmlTemplateResolver() {
SpringResourceTemplateResolver resolver = resolver();
resolver.setSuffix(".xml");
resolver.setTemplateMode("XML");
resolver.setOrder(1);
resolver.setName("XML template resolver");
return resolver;
}
private SpringResourceTemplateResolver resolver() {
SpringResourceTemplateResolver resolver = new SpringResourceTemplateResolver();
resolver.setCacheable(properties.isCache());
resolver.setCharacterEncoding("UTF-8");
resolver.setPrefix("classpath:/templates/");
return resolver;
}
}