velocity: do something except in last loop iterati

2019-02-11 13:10发布

问题:

In velocity, I want to do something different in the last loop.

What is the correct idiom?

RELATED: Last iteration of enhanced for loop in java

回答1:

You can use a test if you are in last iteration::

#foreach( $item in $list )
    $item.text #if( $foreach.hasNext ), #end
#end


回答2:

@soulcheck's answer is what you need, but be aware that the $foreach variable is only available in velocity 1.7, if you're using an earlier version you can use:

#foreach( $item in $list )
    $item.text #if( $velocityHasNext ), #end
#end

However, the $velocityHasNext variable is deprecated in versions 1.7 and removed in 2.0 in favour of $foreach.hasNext.



回答3:

The idiom I use is to save the optional text to be added if the loop doesn't finish.

#set($sep = "")    
#foreach($item in $list)
 $sep$item
 #set($sep = ", ")
#end


回答4:

This worked for me in an older version of Velocity

#if($velocityCount < $list.size()), #end