(例の中の$listはjava.util.Listのインスタンスです)
#set($fruit0 = $list.get(0))
#set($fruit1 = $list.get(1))
#set($fruit2 = $list.get(2))
上の例のように、同じ種類の変数名がほぼ一緒の場合、何としてでもループ構文で書きたくなるのがプログラマの性です。
ただし、Velocityでは以下のようには記述できません。
#foreach($num in [0..2])
#set($fruit$num = $list.get($num))
#end
上の場合、「$fruit$num」という書き方が変数として認められないため、エラーが出ます。
ではどうしたら良いのかというと、以下のようにすれば解決できます。
#foreach($num in [0..2])
$request.setAttribute("fruit$num", $list.get($num))
#end
数ヶ月間ずっと悩んでいたのですが、意外と簡単に解決できてびっくりです。