字符串模板:将< >作为定界符删除

7
我正在尝试在Java Web应用程序中使用StringTemplate生成HTML电子邮件。 在尝试输入换行符时,我使用\<br\>。但这似乎不起作用。\<b\>同样不起作用。是否有一种方法可以关闭<和>作为分隔符,以便我可以测试是否是此问题的原因?在整个StringTemplate文档中,它都说要使用$...$作为您的分隔符,但没有说明如何不使用<...>。
3个回答

7
创建组时,您可以使用特定符号来设置分隔符。
STGroup group = new STGroupDir("emails", '$','$');

其中'$'和'$'是您的定界符。


1
我仍然收到“无效字符'<'”的错误。你确定它真的禁用了“<”作为分隔符吗? - Elias Dorneles
请参考丹的答案。如果您在st文件中没有ST头文件,请改用STRawGroupDir。 - matof

3

2
尽管Lumpy的回答明显是正确的,但他并没有解决我所遇到的问题,因此我认为我应该在这里添加我的解决方案,以供未来的读者参考。
即使您在要加载到程序中并在某个时刻渲染的STGroupDir中创建了一个x.st文件,您仍需要在该文件内定义一种语法(就像您在STGroupFile中一样),如下所示:
x(variables, go, here) ::= "this uses $variables$ such as $go$ and $here$"

请注意,语法应与文件名称相同(当然不包括.st扩展名)。
如果您的模板中有很多引号,或者不想在文件顶部包含模板声明,或者想要一个非常长的模板,则这种方式就不太方便。在这些情况下,您应该使用STRawGroupDir。缺点是没有一个集中的位置在模板文件的顶部命名所有必须传递的变量。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接