2

我将模板引擎 StringTemplate 用于某些模板(显然)。

我想要的是能够将我拥有的模板存储在单独的文件中,当然我可以使用简单的 .txt 文件并将它们读入 a String,看起来有点像这样

ST template = new ST(readTemplateFromFile("template.txt"))

private String readTemplateFromFile(String templateFile){
//read template from file
}

但我想知道的是 StringTemplate 引擎中是否有自动执行此操作的功能。所以我不必编写已经存在的代码。

我读过一些关于组文件的东西,但我不太明白,那些像模板文件吗?还是我完全错过了什么?

4

1 回答 1

2

是的,有一些功能可以直接使用,而无需提供您自己的文件加载代码。

来自ST JavaDoc

要使用模板,您可以创建一个(通常通过STGroup),然后使用add(java.lang.String, java.lang.Object)注入属性。要渲染它的攻击,请使用render()

要遵循该建议,可以使用以下代码。

首先,创建一个名为的文件exampleTemplate.stg并将其放在您的类路径中。

templateExample(param) ::= <<
This is a template with the following param: (<param>)
>>

然后,使用以下代码呈现模板:

// Load the file
final STGroup stGroup = new STGroupFile("exampleTemplate.stg");

// Pick the correct template
final ST templateExample = stGroup.getInstanceOf("templateExample");

// Pass on values to use when rendering
templateExample.add("param", "Hello World");

// Render
final String render = templateExample.render();

// Print
System.out.println(render);

输出是:

这是一个带有以下参数的模板:(Hello World)


一些附加说明:

  • STGroupFile是 的子类STGroup。还有其他子类,您可以在JavaDoc中找到更多信息。
  • 在上面的示例中,模板文件被放置在类路径中。这不是必需的,文件可以放在相对文件夹中,也可以放在绝对文件夹中。
于 2015-01-17T17:22:19.210 回答