Java StringTemplate 迭代复杂对象列表

标签 java list stringtemplate

我有一个像这样的类(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/

相关文章:

PYTHON:不增加列表元素的位置

c# - 在 C# 中使用反射检查属性是否为列表

java - 在 SpringMVC 中将 StringTemplate 与表单一起使用

java - 需要更好的模板语言

java - Stringtemplate 比较字符串不起作用

java - 如何正确检测、解码和播放 radio 流?

java - Android 按钮保持按下/单选组

c++ - std::list 中的迭代器感知对象

java - 使用Eclipse设置解析

java - 如何隐藏 s3 存储桶并从 Html 文件访问 key 凭据