9

我在某处将模板保存为字符串,我想用它来创建小胡子。我怎样才能做到这一点?或者可行吗?

4

2 回答 2

19

这是我找到的方法:

private String renderMustacheContent() throws IOException {
    MustacheFactory mf = new DefaultMustacheFactory();
    Mustache mustache;

    if (type.getTemplate().trim().isEmpty()) {            
        String emailContent = genCpuEmailContent(cmsKey);
        mustache = mf.compile(new StringReader(emailContent), "cpu.template.email");
    } else {
        mustache = mf.compile(type.getTemplate());
    }

    StringWriter writer = new StringWriter();
    mustache.execute(writer, values).flush();

    return writer.toString();
}

因此,基本上,当您只想从字符串模板而不是文件呈现电子邮件时,只需使用模板创建新的 StringReader。

于 2013-06-19T20:32:36.183 回答
0

如果您使用 FileWriter(或其他一些类)将该字符串存储到文件中并保留扩展名 .mustache,那么您应该能够关闭并使用该文件。这是我快速制作的东西(它可能不起作用):

//write to the file
FileUtils.writeStringToFile(new File("template.mustache"), "example mustache stuff");
//do stuff....
//code for turning template into mustache
MustacheFactory mf = new DefaultMustacheFactory();
Mustache mustache = mf.compile("template.mustache");
mustache.execute(new PrintWriter(System.out), new Example()).flush();

编辑:我误读了标题。您可以创建一个临时文件,然后稍后将其删除。

资料来源:

如何使用 Java 将字符串保存到文本文件中?

https://github.com/spullara/mustache.java/blob/master/example/src/main/java/mustachejava/Example.java

于 2013-06-19T19:37:27.510 回答