我有一个像这样的类(class):
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
如何正确迭代该列表并用逗号分隔打印出来?
最佳答案
您的分隔符分隔 foo.s
的元素,而不是 foo
的元素。尝试
ST st = new ST("Hello, $data.(\"foos\") : {foo | $foo.s$};separator=\", \"$", '$', '$');
关于Java StringTemplate 迭代复杂对象列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47687673/