我有这段代码:
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;
}
}
速度模板:
#foreach( $rssArticleDTO in $rssArticleDTOList )
<div>
<div>$date </div>
<div>$rssArticleDTO.title</div>
<div>$time</div>
</div>
#end
输出为$rssArticleDTO.title
,而不是显示标题的值。
如果我使用的是字符串列表或rssArticleDTOList
,那么打印值就没有问题。
如果我使用$rssArticleDTO
,则会打印toString
方法,即哈希码。
所以请帮我解决这个问题。
答案 0 :(得分:0)
我发现了问题的根源。 UserRssArticleDTO类与模板位于同一个类中。我将它移动到自己的java文件中,一切都开始工作了。