我正在尝试在java web应用程序中使用StringTemplate来生成HTML电子邮件。在尝试输入换行符时,我使用\<br\>
这似乎不起作用。 \<b\>
效果不佳。有没有办法关掉&lt;和&gt;作为分隔符所以我可以测试这是否是问题?在整个StringTemplate文档中,它说使用$ ... $作为分隔符,但没有说明如何不使用&lt; ...&gt;
答案 0 :(得分:6)
创建组时,您可以使用
设置分隔符STGroup group = new STGroupDir("emails", '$','$');
'$'和'$'是你的分隔符。
答案 1 :(得分:2)
在模板组文件(.stg)的顶部,您可以输入:
delimiters "$", "$"
...或者你想要的任何分隔符。更多信息请访问: https://theantlrguy.atlassian.net/wiki/display/ST4/Group+file+syntax
答案 2 :(得分:2)
虽然Lumpy肯定正确地回答了这个问题,但他没有解决我所遇到的问题,所以我想我会在这里为未来的读者添加我的解决方案。
即使你在x.st
中创建了一个STGroupDir
文件,你想加载到程序中并在某个时候渲染,你也必须在该文件中定义一个语法(就像你想的那样)在STGroupFile
内部,如此:
x(variables, go, here) ::= "this uses $variables$ such as $go$ and $here$"
请注意,语法应与文件同名(当然,减去.st
扩展名。)
如果您的模板中有很多引号,或者您不希望在文件顶部包含模板声明,或者您希望拥有一个非常长的模板,那么这很不方便。在这些情况下,您应该使用STRawGroupDir
。缺点是模板文件顶部没有中心位置,用于命名必须传入的所有变量。