Java StringTemplate迭代复杂对象列表

时间:2017-12-07 04:36:55

标签: java list stringtemplate

我有一个类似的课程:

public class Foo {
    private String s;
}

我有一份所说的物品清单。我希望能够遍历此列表并打印出字符串属性s。我有以下代码来呈现字符串模板:

Map<String, Object> params = new HashMap<>();
List<Foo> foos = new ArrayList<>();
foos.add(new Foo("A"));
foos.add(new Foo("B"));
foos.add(new Foo("C"));
params.put("foos", foos);
ST st = new ST("Hello, $data.(\"foos\") : {foo | $foo.s;separator=\", \"$}$", '$', '$');
st.add("data", params);
template = st.render();
System.out.println(template);

但输出只是:

Hello, ABC

如何正确迭代该列表并使用逗号分隔打印出来?

1 个答案:

答案 0 :(得分:1)

您的分隔符会分隔foo.s的元素,而不是foo的元素。试试

ST st = new ST("Hello, $data.(\"foos\") : {foo | $foo.s$};separator=\", \"$", '$', '$');