2016-07-13 103 views
-1

我有这样的代码:速度更换的物品的财产

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

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

Velocity模板:

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

输出$rssArticleDTO.title而不是显示标题的值。

如果我使用字符串列表或rssArticleDTOList,那么打印值没有问题。

如果我使用$rssArticleDTO,那么toString方法即散列码正在打印。

所以请帮我解决这个问题。

+0

请在代码中显示如何检索速度模板中rssArticleDTOList的值。 –

+0

这是从我认为与我们的目的无关的文件中获得的。 – user1539343

回答

0

我找到了问题的根源。 UserRssArticleDTO类与模板在同一个类中。我把它移到它自己的java文件中,一切开始工作。