2016-12-16 8 views
3

私の電子メールサービスからHTML本文を生成する方法を理解しようとすると、約30分を逃しました。これは、APIコールではなく、スケジュールされたタスクです。コントローラもMVCアプリケーションロジックもありません。ちょうどテンプレートを処理する。Thymeleafを使用して電子メールを処理する

私は生のJavaを持っており、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は、私が必要としないコントローラーのロジック、リゾルバーなどにバインドされています。

+0

が見えます問題/ 561 –

答えて

2

thymeleaf 3では解決策は非常に似ています。

/** 
    * 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); 
関連する問題