次のような速度テンプレートを用意します
#foreach($item in $items)
<tr>
<td>$item.getClass() $item.getKey()</td>
<td>$item.summary $item.Summary $item.getSummary()</td>
</tr>
#end
Velocity のマニュアルによると、$item フィールドに getter -"getSummary()" としてアクセスできます。
ReportRow アイテムの ArrayList を変数「items」に渡し、速度でアイテムの概要を描画するようにします。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" - OK - $item にはオブジェクトが含まれており、その Key フィールドにアクセスできます。
- 2 列目: "$item.summary $item.Summary $item.getSummary()" -なぜ?
アイテムをコンテキストに入れるとき、すべてのフィールドは null ではありません。
私は何を逃したのですか?