2016-07-13 7 views
-1

Ich habe diesen Code:Geschwindigkeit Ersatz von Eigentum von Elementen in einer Liste funktioniert nicht

UserRssArticleDTO rssArticleDTO = new UserRssArticleDTO(); 
rssArticleDTO.title = "Calves won in NBA"; 
ArrayList<UserRssArticleDTO> dtoList = new ArrayList<UserRssArticleDTO>(); 
dtoList.add(rssArticleDTO); 

VelocityContext context = new VelocityContext(); 

ArrayList<String> strList = new ArrayList<>(Arrays.asList("peasant","farmer")); 
context.put("rssArticleDTOList", dtoList); 
context.put("date", new Date()); 
context.put("time", new Date()); 

StringWriter swOut = new StringWriter(); 
String templateStr = buffer.toString(); 

/** 
* Merge data and template 
*/ 
Velocity.evaluate(context, swOut, "log tag name", templateStr); 
System.out.println(swOut); 

Die UserRssArticleDTO:

class UserRssArticleDTO { 
    public String title; 
    public String desctiption; 
    public String dummy; 

    public String getTitle() { 
     return title; 
    } 
    public void setTitle(String title) { 
     this.title = title; 
    } 
    public String getDesctiption() { 
     return desctiption; 
    } 
    public void setDesctiption(String desctiption) { 
     this.desctiption = desctiption; 
    } 
    public String getDummy() { 
     return dummy; 
    } 
    public void setDummy(String dummy) { 
     this.dummy = dummy; 
    } 
} 

Die Geschwindigkeit Vorlage:

#foreach($rssArticleDTO in $rssArticleDTOList) 
    <div> 
     <div>$date </div> 
     <div>$rssArticleDTO.title</div> 
     <div>$time</div> 
    </div> 
#end 

Der Ausgang ist $rssArticleDTO.title statt den Wert des Titels anzuzeigen.

Wenn ich stattdessen die A-String-Liste oder rssArticleDTOList verwende, dann gibt es kein Problem im Druckwert.

Wenn ich $rssArticleDTO verwende, dann wird die Methode, dh der Hashcode, gedruckt.

Bitte helfen Sie mir, dieses Problem zu lösen.

+0

Bitte zeigen Sie den Code, wie Sie den Wert von 'rssArticleDTOList' in Ihrer Geschwindigkeitsvorlage abrufen. –

+0

Das stammt aus einer Datei, die ich für unseren Zweck nicht relevant finde. – user1539343

Antwort

0

Ich habe die Ursache des Problems gefunden. Die Klasse UserRssArticleDTO befand sich in derselben Klasse wie die Vorlage. Ich habe es in eine eigene Java-Datei verschoben und alles hat angefangen zu arbeiten.