Java Can';t解释速度';行为

Java Can';t解释速度';行为,java,velocity,Java,Velocity,有速度模板吗 #foreach($item in $items) <tr> <td>$item.getClass() $item.getKey()</td> <td>$item.summary $item.Summary $item.getSummary()</td> </tr> #end 当Velocity渲染文本时,我得到: 对于第一列:“class…ReportRow MyKey”-没问题-$ite

有速度模板吗

#foreach($item in $items)
<tr>
    <td>$item.getClass() $item.getKey()</td>
    <td>$item.summary $item.Summary $item.getSummary()</td>
</tr>
#end
当Velocity渲染文本时,我得到:

  • 对于第一列:“class…ReportRow MyKey”-没问题-$item包含我的对象,它的Key字段是可访问的
  • 对于第二列:“$item.summary$item.summary$item.getSummary()”-为什么
在上下文中放置项时,所有字段都不为空


我错过了什么?

因为getter是私有的。出于明显的安全原因,Velocity不允许从模板调用私有方法。只需将方法
公开
,即可使其正常工作

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;
    }
}