StringTemplate - 如何遍历业务对象列表并输出简单的html?

时间:2009-05-11 09:17:14

标签: c# stringtemplate

我刚开始在我的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来完成这项工作。有什么想法吗?

2 个答案:

答案 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>;
}
}>
}

>>