Velocity代码生成:检查是否输入了$foreach?

发布于 2024-12-10 11:57:15 字数 411 浏览 0 评论 0原文

我尝试修改用于代码生成的 vsl 文件,以检查是否实际进入了 foreach 循环以及是否要执行初始化代码。我尝试了类似java的.length> 0 但这不起作用:

myMethod() {
    #if (${reference.attributes}.length > 0)
        [some init code]

        #foreach ($attribute in ${reference.attributes})
            #some_macro($attribute)
        #end
        [some other code related to stuff created in the 
    #end
}

正确的方法是什么?

谢谢。

I try to modify a vsl file for code generation to check whether a foreach loop is actually entered and the initialization code is to be performed at all. I tried java-like .length > 0 but that does not work:

myMethod() {
    #if (${reference.attributes}.length > 0)
        [some init code]

        #foreach ($attribute in ${reference.attributes})
            #some_macro($attribute)
        #end
        [some other code related to stuff created in the 
    #end
}

What's the correct way?

Thanks.

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

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

发布评论

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

评论(2

云醉月微眠 2024-12-17 11:57:15

调用 size() 方法。这适用于集合和数组(从 Velocity 1.6+ 开始)。

#if (${reference.attributes.size()} > 0)

Call the size() method. This will work on both collections and arrays (as of Velocity 1.6+).

#if (${reference.attributes.size()} > 0)
空宴 2024-12-17 11:57:15
#foreach ($foo in $bar)
    $foo
#end

Or if you want to iterate over a number range:

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

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

Or if you want to iterate over a number range:

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

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文