如何在VM中循环访问下一个元素

时间:2013-01-23 11:27:08

标签: loops for-loop foreach velocity

我需要访问foreach中的下一个元素来比较一些值。

在JSP中,我添加了一些虚拟元素,并像这样循环;

for(int i=0; i<list.size() - 1; i++) {
    MyClass element = list.get(i);
    MyClass nextElement = list.get(i+1);

    if(element.getSomeValue() > nextElement.getSomeValue())
        doSome();
        ...

但是在VM中,据我所知,我无法通过索引获取元素。 如果有办法访问下一个元素,请帮助我。

1 个答案:

答案 0 :(得分:2)

您的Velocity模板(.vm文件)可以访问放置在Context中的任何Java对象。在后备Java类或Velocity servlet中,将列表放在上下文中:

context.put("list", myList);

然后在Velocity模板中,您可以将其引用为$list,您可以使用$list.get(i)等来调用它上面的方法。请注意,与JSP不同,您不能将纯Java代码放入Velocity模板,您必须使用VTL