如何使用“for”速度模板中的循环?

发布于 2024-11-02 07:48:13 字数 71 浏览 6 评论 0原文

我刚刚在谷歌上搜索了“for循环”,但看起来速度只有“foreach”。

如何在速度模板中使用“for 循环”?

I just googled for 'for loop', but it looks like velocity has 'foreach' only.

How do I use 'for loop' in velocity template?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

想你的星星会说话 2024-11-09 07:48:14

想要添加 foreach 循环内的迭代信息可以从特殊的 $foreach 属性访问:(

#foreach ($foo in $bar)
    count: $foreach.count
    index: $foreach.index
    first: $foreach.first 
    last:  $foreach.last
#end

上次我检查 last 包含一个错误)

Wanted to add that iteration information inside foreach loop can be accessed from special $foreach property:

#foreach ($foo in $bar)
    count: $foreach.count
    index: $foreach.index
    first: $foreach.first 
    last:  $foreach.last
#end

(last time I checked last contained a bug though)

空名 2024-11-09 07:48:14

只有#foreach。你必须在你的上下文中放置一些可迭代的东西。例如,使 bar 可用,它是某种数组或 Collection

#foreach ($foo in $bar)
    $foo
#end

或者如果您想迭代数字范围:

#foreach ($number in [1..34])
    $number
#end

There's only #foreach. You'll have to put something iterable on your context. E.g. make bar available that's an array or Collection of some sort:

#foreach ($foo in $bar)
    $foo
#end

Or if you want to iterate over a number range:

#foreach ($number in [1..34])
    $number
#end
三生一梦 2024-11-09 07:48:14

当我尝试循环列表时,我找到了解决方案。
将列表放入另一个类中,并为列表 obj 创建 getter 和 setter。
例如

public class ExtraClass {
    ArrayList userList = null;

    public ExtraClass(List l) {
        userList = (ArrayList) l;
    }

    public ArrayList getUserList() {
        return userList;
    }

    public void setUserList(ArrayList userList) {
        this.userList = userList;
    }

}

,对于速度上下文,将 Extraclass 作为输入。
例如。

  ExtraClass e = new ExtraClass(your list);
VelocityContext context = new VelocityContext();

context.put("数据", e);
模板内

#foreach ($x in $data.userList)
        $x.fieldname    //here $x is the actual obj inside the list
    #end

I found the solution when i was trying to loop a list.
Put the list in another class and create getter and setter for the list obj.
e.g

public class ExtraClass {
    ArrayList userList = null;

    public ExtraClass(List l) {
        userList = (ArrayList) l;
    }

    public ArrayList getUserList() {
        return userList;
    }

    public void setUserList(ArrayList userList) {
        this.userList = userList;
    }

}

Then for velocity context put the Extraclass as the input.
eg.

  ExtraClass e = new ExtraClass(your list);
VelocityContext context = new VelocityContext();

context.put("data", e);
Within template

#foreach ($x in $data.userList)
        $x.fieldname    //here $x is the actual obj inside the list
    #end
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文