私は「forループ」をググっただけですが、速度には「foreach」しかありません。
速度テンプレートで「forループ」を使用するにはどうすればよいですか?
だけあります #foreach
。あなたはあなたの文脈に反復可能な何かを置かなければならないでしょう。例えば。 bar
を配列またはCollection
で使用できるようにします。
#foreach ($foo in $bar)
$foo
#end
または、数値の範囲を反復処理する場合:
#foreach ($number in [1..34])
$number
#end
Foreachループ内の反復情報にアクセスするには、特別な$foreach
プロパティからアクセスできます。
#foreach ($foo in $bar)
count: $foreach.count
index: $foreach.index
first: $foreach.first
last: $foreach.last
#end
(私がlast
を確認した前回はバグが含まれていました)
リストをループしようとしたときに解決策を見つけました。リストを別のクラスに置き、リストobjのゲッターとセッターを作成します。例えば
public class ExtraClass {
ArrayList userList = null;
public ExtraClass(List l) {
userList = (ArrayList) l;
}
public ArrayList getUserList() {
return userList;
}
public void setUserList(ArrayList userList) {
this.userList = userList;
}
}
次に、速度コンテキストの場合、Extraclassを入力として入力します。例えば。
ExtraClass e = new ExtraClass(your list);
VelocityContext context = new VelocityContext();
context.put( "data"、e);テンプレート内
#foreach ($x in $data.userList)
$x.fieldname //here $x is the actual obj inside the list
#end