2016-12-16 2 views
3

전자 메일 서비스에서 HTML 본문을 생성하는 방법을 알아 내려고 30 분이 걸리지 않았습니다. 이것은 API 호출이 아닌 예약 된 작업입니다. 컨트롤러 또는 MVC 응용 프로그램 논리가 없음을 의미합니다. 그냥 템플릿 처리.Thymeleaf를 사용하여 전자 메일 html 처리

원시 자바가 있으며, Thymeleaf로 단일 * .html 파일을 처리하려고합니다. 그렇게하는 방법? 즉

, 나는 속도 예를 들어 Thymeleaf 비유가 필요합니다

VelocityEngine ve = new VelocityEngine(); 
ve.init(); 
Template t = ve.getTemplate("helloworld.vm"); 
VelocityContext context = new VelocityContext(); 
context.put("name", "World"); 
StringWriter writer = new StringWriter(); 
t.merge(context, writer); 

P.S.을 this 문제를 읽었지만 답변을 제공하지 않습니다. Thymeleaf 박사와 thymeleafexamples-gtvg은 컨트롤러 로직, 리졸버 및 내가 필요로하지 않는 다른 것들에 바인딩되어 있습니다. thymeleaf 3 용액에

+0

가 보이는 이슈/561 –

답변

2

은 매우 유사합니다

/** 
    * THYMELEAF: Template Engine (Spring4-specific version) for HTML email 
    * templates. 
    */ 
    @Bean 
    public ITemplateEngine htmlTemplateEngine() { 
    SpringTemplateEngine templateEngine = new SpringTemplateEngine(); 
    templateEngine.setTemplateResolver(htmlTemplateResolver()); 
    return templateEngine; 
    } 

    /** 
    * THYMELEAF: Template Resolver for HTML email templates. 
    */ 
    private ITemplateResolver htmlTemplateResolver() { 
    ClassLoaderTemplateResolver templateResolver = new ClassLoaderTemplateResolver(CLASS_LOADER); 
    templateResolver.setPrefix("/emails/"); 
    templateResolver.setSuffix(".html"); 
    templateResolver.setTemplateMode(TemplateMode.HTML); 
    templateResolver.setCharacterEncoding(ENCODING); 
    templateResolver.setCacheable(false); 
    return templateResolver; 
    } 

마지막으로 코드 : 여기 https://github.com/thymeleaf/thymeleaf/ 답을 얻을처럼

private final Locale LOCALE = new Locale("pl", "PL"); 
final Context ctx = new Context(LOCALE); 
ctx.setVariable("name", "World"); 

String html = htmlTemplateEngine.process("layouts/layout.html", ctx);