Tag: stringtemplate 4

在模板中嵌入java代码

是否可以在ST4模板中嵌入可执行的Java代码? 例如,如果我想将一个字符串传递给我的模板,有时会按原样打印字符串,有时会将其打印成大写字母,所以我想要一个java代码来进行必要的转换。 如果没有此function,我会看到3种方法来实现相同的function: (1)预先计算java中的替代值,并一次性将它们全部传递给模板(但这可能导致参数太多): // in the below code, if the template can compute DESCRIPTION_CAPS from DESCRIPTION, using embedded java code, that reduces one argument test(DESCRIPTION, DESCRIPTION_CAPS) ::= << this is original this is caps >> (2)如果有太多这样的参数,另一个选择是将temlpate拆分成更小的部分,但这会使代码变得丑陋且难以理解: test1(DESCRIPTION) ::= << this is original >> test2(DESCRIPTION_CAPS) ::= << this is caps >> (3)预先计算类中的所有相关值,并让模板调用getter函数(不带参数)来简单地从类中获取相关值。 test() ::= << […]

我如何迭代stringtemplate中的java列表?

我想遍历stringtemplate中的hibernate查询结果。 我一直在寻找例子但我找不到任何东西。 你能帮忙吗? 谢谢

确保在StringTemplate中转义HTML实体的最佳方法是什么

假设以下字符串模板,正在给出一个Java Bean对象列表: $people:{p|$p.name$ $p.email}$ 即人员列表可能包含您可能或可能无法增强/扩展的Person对象: class Person { …. public getName() { … } public getEmail() { … } } getName()和getEmail()方法不返回已清理的(转义的html实体)。 你怎么解决这个问题?

StringTemplate为给定模板定义的属性列表

我开始使用StringTemplate 4,我试图从存储在数据库中的简单字符串创建模板。 我使用这样的东西: STGroup group = new STGroupString(null, someTemplateString, ‘$’, ‘$’); ST st = group.getInstanceOf(someTemplateName); st.add(someAttribute, someValue); 现在一切正常,如果我定义所有或少于为模板someTemplateName定义的属性。 现在,如果我尝试添加不存在的属性,我会收到以下exception: no such attribute: fake java.lang.IllegalArgumentException: no such attribute: fake … 这是有道理的。 但是,似乎我无法事先知道为模板someTemplateName定义了哪些属性。 我期待找到类似的东西: bool isDef = st.isDefined(someAttribute); 但是没有这样的方法。 我对么? 有没有办法解决?