我刚开始在我的C#项目中使用StringTemplate。我浏览了文档,但似乎无法找到实现这个简单方案的方法:
我有一个简单的业务对象列表(让我们说订单),我希望它们显示在我的html模板中的UL标签内。
所以,我的.st模板看起来像这样(伪代码):
<html> some text <ul>[Order template]<li>[Order name here]</li>[/Order template]</ul></html>
我希望我的输出为:
<html> some text <ul><li>Order 1</li><li>Order 2</li>...</ul></html>
我无法弄清楚如何使用StringTemplate来完成这项工作。有什么想法吗?
答案 0 :(得分:28)
您应该使用以下语法:
<ul>
$orders: {order|
<li>Order $order.OrderId$</li>
}$
</ul>
有关此功能的文档很难找到,我找到了一些信息here(搜索管道符号|)。
答案 1 :(得分:0)
这对我也有用。如果从Antlr调用StringTemplate作为StringTemplateGroup,则语法略有不同。将$替换为&lt;&gt;。
group DTO;
assign1(m, attributes) ::= <<
package demo;
import java.io.Serializable;
public class <m> implements Serializable {
public <m>() {
super();
}
<attributes : {attribute |
protected <attribute.type> <attribute.name>;
public <attribute.type> get<attribute.name>() {
return <attribute.name>;
}
public void set<attribute.name>(<attribute.type> <attribute.name>) {
this.<attribute.name> = <attribute.name>;
}
}>
}
>>