Java 列表中项目属性的速度替换不起作用
我有以下代码:Java 列表中项目属性的速度替换不起作用,java,velocity,Java,Velocity,我有以下代码: UserRssArticleDTO rssArticleDTO = new UserRssArticleDTO(); rssArticleDTO.title = "Calves won in NBA"; ArrayList<UserRssArticleDTO> dtoList = new ArrayList<UserRssArticleDTO>(); dtoList.add(rssArticleDTO); VelocityContext context
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);
速度模板:
#foreach( $rssArticleDTO in $rssArticleDTOList )
<div>
<div>$date </div>
<div>$rssArticleDTO.title</div>
<div>$time</div>
</div>
#end
#foreach($rssArticleDTO中的rssArticleDTO)
$date
$rssArticleDTO.title
$time
#结束
输出为$rssArticleDTO.title
,而不是显示标题的值
如果改用a字符串列表或rssArticleDTOList
,则打印值没有问题
如果我使用$rssArticleDTO
,那么toString
方法即hashcode正在被打印
所以请帮我解决这个问题。我找到了问题的根源。类UserRssArticleDTO与模板位于同一个类中。我将它移到了自己的java文件中,一切都开始工作。请向代码展示如何在velocity模板中检索
rssArticleDTOList
的值。这是从一个我觉得与我们的目的无关的文件中获取的。
#foreach( $rssArticleDTO in $rssArticleDTOList )
<div>
<div>$date </div>
<div>$rssArticleDTO.title</div>
<div>$time</div>
</div>
#end