模板调用中的StringTemplate4 :: template调用

时间:2013-03-15 12:10:08

标签: stringtemplate stringtemplate-4

我试图调用一个模板,作为参数传递调用另一个模板的结果,但我似乎无法让它工作。这是一个缩小范例:

文件中的以下模板组:

echo(foo) ::="<foo>"
boo() ::= << <echo("zoo")> >>

使用以下Java代码调用时:

STGroup stg = new STGroupFile("thefile.stg");
ST boo = stg.getInstanceOf("boo");
System.out.println(boo.render());

按预期生成 zoo

但是,当我尝试将“zoo”文字替换为返回相同的模板时, ST 会在解析过程中抱怨:

不起作用:

echo(foo) ::="<foo>"
zoo() ::= "zoo"
boo() ::= << <echo( <zoo()>  )> >>

1 个答案:

答案 0 :(得分:0)

而不是:

boo() ::= << <echo( <zoo()> )> >>

使用:

boo() ::= << <echo(zoo())> >>

似乎&lt; &GT;只需在调用外部模板的地方使用一次。