2013-07-25 39 views
0

有無Velocity模板像不能解釋速度的行爲

#foreach($item in $items) 
<tr> 
    <td>$item.getClass() $item.getKey()</td> 
    <td>$item.summary $item.Summary $item.getSummary()</td> 
</tr> 
#end 

Velocity manual最高審計機關,那我可以訪問$項目領域的干將 - 「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; 
    } 
} 

而當速度呈現文本,我得到:

  • 第一列: 「類... ReportRow的myKey」 - 這是o'k - $ item包含我的對象,它的Key字段是可訪問的;
  • 第二列: 「$ item.summary $ item.Summary $ item.getSummary()」 - 爲什麼

當上下文將項目的所有字段不爲空。

我錯過了什麼?

回答

1

因爲吸氣劑private。出於明顯的安全原因,Velocity不允許從模板調用私有方法。只要讓方法public得到它的工作。

+0

哦,你是對的!謝謝!看來,昨天我累了... – omickron