Tag: stringtemplate

在模板中嵌入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() ::= << […]

字符串模板电子邮件格式化日期

我正在使用字符串模板创建一个电子邮件,但是当我打印出一个日期时,它会打印出完整的日期(例如,2010年4月28日星期三,星期五,2010年5月5日,星期五)。 我想以dd / mm / yyyy格式打印出来,但不知道如何在.st文件中格式化它。 我不能单独修改日期(使用java的simpleDateFormatter)因为我迭代了带有日期的对象集合。 有没有办法格式化.st电子邮件模板中的日期?

哪些Java MVC框架可以轻松地与StringTemplate集成?

很难看出StringTemplate如何轻松(或不)与流行的 Java Web MVC框架集成。 哪些Java MVC框架可以轻松地与StringTemplate集成? 一个很好的答案: 提到了一个与框架集成的解决方案 , 包括指向有用且适用的内容的链接 ,例如: 一个教程 , 或文件 , 或者对源代码的引用: 免费的 , 和开源或公共领域 。 读者/选民 ,如果你知道这是真的和伟大的,请投票寻求解决方案。 在这个问题的范围内,我对除StringTemplate之外的任何其他模板引擎都不感兴趣 。

将Xtext与StringTemplate代码生成器链接

在我当前的项目中,我试图链接用xtext编写的DSL规范和用StringTemplate编写的代码生成器。 例如,我的DSL规范的语法如下。 我通过xText提供的很好的编辑器工具输入这些信息。 structs: TempStruct tempValue : double; unitOfMeasurement : String; abilities : sensors: TemperatureSensor generate tempMeasurement : TempStruct; attribute responseFormat : String; 上述DSL规范的语法如下: VocSpec: ‘structs’ ‘:’ (structs += Struct)+ ‘abilities’ ‘:’ (‘sensors’ ‘:’ (sensors += Sensor)+ )+ ; Sensor: name = ID ((attributes += Attributes ) | (sources += Sources))* ; Sources: ‘generate’ name=ID […]

需要更好的模板语言

是的,我知道以前 曾经问过 这个 问题 。 但大多数问题是两年前的问题,今天必须有一个更好的答案。 我需要一种用于呈现HTML的模板语言。 要求: 必须可以从Java调用。 不能是Freemarker,Velocity或StringTemplate。 我们已经使用Freemarker一年了,而且速度太慢了。 它在负载下消耗了50%的CPU周期。 速度比Freemarker差,而StringTemplate也有自己的问题。 它必须使用JSON或其Java等价物,即地图,列表和基元。 我开始让Node.js羡慕。 去年Javascript的模板活动很多,但Java(我知道)很少。 理想的语言看起来像Liquid ,它只存在于Rails中。 Jade存在于Java中,但我不希望它附带的所有HTML重新格式化。 更新 我最终选择了Handlebars ,它也可以用于Java 。 两者都很棒。

Stringtemplate比较字符串不起作用

有人可以解释为什么这不起作用? StringTemplate query = new StringTemplate(“hello ” + “$if(param==\”val1\”)$” + ” it works! ” + “$endif$ ” + “world”); query.setAttribute(“param”, “val1”); System.out.println(“result: “+query.toString()); 它抛出 eval树解析错误:0:0:org.antlr.stringtemplate.language.ActionEvaluator.ifCondition(ActionEvaluator.java:815)org.antlr.stringtemplate.language.ConditionalExpr.write(ConditionalExpr.java:99)中子树的意外结束)

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

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