velocity: do something except in last loop iterati

2019-02-11 13:14发布

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

4条回答
祖国的老花朵
2楼-- · 2019-02-11 13:31

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
查看更多
不美不萌又怎样
3楼-- · 2019-02-11 13:35

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

#foreach( $item in $list )
    $item.text #if( $foreach.hasNext ), #end
#end
查看更多
劳资没心,怎么记你
4楼-- · 2019-02-11 13:43

This worked for me in an older version of Velocity

#if($velocityCount < $list.size()), #end
查看更多
倾城 Initia
5楼-- · 2019-02-11 13:50

@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.

查看更多
登录 后发表回答