这是一个非常基本的问题,我很确定我做错了什么或做出了一些假设。开始。
我正在编写一个使用 Velocity 模板系统的 Jira 插件。我有一个 ResultRow 对象列表,其中 ResultRow 是一个具有单个成员变量的类:字符串键:
public class ResultRow {
public String key;
}
我有这些 ResultRows 的列表:
List<ResultRow> rows = new ArrayList<ResultRow>();
ResultRow row = new ResultRow();
row.key = "foo";
rows.add(foo);
Map<String, Object> velocityParams = new HashMap<String, Object>();
velocityParams.put("rows", rows);
return descriptor.getHtml("view", velocityParams);
我正在尝试使用以下内容在模板中列出这些行:
#foreach ($row in $rows)
<tr><td>$row.key</td></tr>
#end
我希望输出为: foo. 令人发指的是,模板系统只是打印文字字符串“$row.key”而不是 key 的内容。为了验证“$row”确实是一个对象,我使用了模板:
#foreach ($row in $rows)
<tr><td>$row</td></tr>
#end
结果如预期:com.domain.jira.ResultRow@7933f2c6。
我想也许我错过了课程的一些要求。是否需要以某种特殊方式定义以向 Velocity 建议某些成员可在模板中使用?Jira 是否使用了一些仅适用于某些对象的特殊版本的 Velocity?