有速度模板
#foreach($item in $items)
<tr>
<td>$item.getClass() $item.getKey()</td>
<td>$item.summary $item.Summary $item.getSummary()</td>
</tr>
#end
Velocity manual sais,我可以访问 $item 字段作为 getter -“getSummary()”。
我将 ReportRow 项目的 ArrayList 传递给变量“项目”,并希望速度绘制项目摘要。ReportRow 是一个简单的 POJO 类:
public class ReportRow {
private String key;
private String summary;
public ReportRow(String key, String summary) {
this.key = key;
this.summary = summary;
}
public String getKey() {
return key;
}
public void setKey(String key) {
this.key = key;
}
private String getSummary() {
return summary;
}
private void setSummary(String summary) {
this.summary = summary;
}
@Override
public String toString() {
return key + " " + summary;
}
}
当 Velocity 渲染文本时,我得到:
- 对于第一列:“class ...ReportRow MyKey” - 没关系 - $item 包含我的对象,并且它的 Key 字段是可访问的;
- 对于第二列:“$item.summary $item.Summary $item.getSummary()” -为什么?
将项目放在上下文中时,所有字段都不为空。
我错过了什么?