StringTemplates,如何在代码中创建一组模板

StringTemplates, how to create a group of templates in code

我是 StringTemplates 的新手,正在尝试弄清楚如何从文件以外的来源(它实际上在数据库中)构建一组模板。

我错过了类似 (伪代码):

STGroup group = new STGroup();
group.addTemplate("name", args, "... <actual template goes here> ...");

我找不到任何类似的东西。 STGroup.defineTemplate-方法看起来都仅供内部使用,或者是 java-doc'ed "for testing"。 STGroup.compile 需要 Token.

其实我想在Java中写一个组文件的内容。 STGroupString 在性能方面看起来并不乐观。我们有数百个模板,其中一些非常大。将其呈现为组文件语法,然后让 StringTemplates 将其解析回名称、参数、内容结构而不是直接传入该结构对我来说没有意义。

您可以使用 STGroup.defineTemplate(),即使它的 Javadoc 说 for testing:

STGroup stGroup = new STGroup();

stGroup.defineTemplate("myTemplate", "is this true? <if (true)>yes<endif>");

// will print "is this true? yes"
System.out.println(stGroup.getInstanceOf("myTemplate").render());