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

时间:2011-10-18 07:12:06

标签: java velocity

我尝试修改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
}

正确的方法是什么?

感谢。

2 个答案:

答案 0 :(得分:4)

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

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

答案 1 :(得分:-1)


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

Or if you want to iterate over a number range:

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