StringTemplate 渲染图作为文字值

StringTemplate rendering map as literal value

使用 org.stringtemplate.v4.ST 我正在尝试呈现此模板:

$if(foo.map)$Foo Map: <foo.map.keys:{k | <k>: <foo.map.(k)>}; separator="\n"><br/>$endif$

调用st.render()方法时,打印出来:

Foo Map: <foo.map.keys:{k | <k>: <foo.map.(k)>}; separator="\n"><br/>

即使我在 foo.map 中设置了值,它们也没有打印出来。如何打印值而不是模板文字?

我没试过。但在第一眼看来。您的分隔符是“$”,表示开始和结束。而不是“<”、“>”。所以这应该可以解决问题:

$if(foo.map)$Foo Map: $foo.map.keys:{k | $k$: $foo.map.(k)$}; separator="\n"$<br/>$endif$