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