1

PlayFrameworkのビューテンプレートでこれを行う方法は何ですか?どうやら、プレイテンプレートエンジンはgroovyに基づいているので、私はgroovyでタグ付けしました。

%{ 
    for(int i=0, int j = 0; i < userdata.size(), j < user.size();i = i + 4, j++){
}%
<div style="text-align: center;">
<h3>
    ${foo.get(j)}
</h3>
</div>

これが不可能な場合、または単に好奇心のために:

また、fooをハッシュマップとして渡してみました。そのキーはすでにuserdataに存在しています。私はこのようなことを試みましたが、役に立ちませんでした:

${foo.each{ k, v -> println "${k}:${v}" }}

4

2 に答える 2

2

groovyについて話しているので、playframework1.xを使用していると思います。Playframework2はscalaテンプレートを使用します。

他の言語の場合と同様に、2つの条件をループできます。構文は少し異なります。

Java:

for (int i = 0; i < 10; i++){
    for (int j = 0; j < 10; j++) {
        System.out.println(String.format("i: %d, j: %d", i, j));
    }
}

PlayFrameworkテンプレート:

#{list items:0..10, as:'i'}
    #{list items:0..10, as:'j'}
        <p>i: ${i}, j: ${j}</p>
    #{/list}
#{/list}

#{list}タグのドキュメントを確認してください

于 2012-06-18T18:52:22.490 に答える
1

再生テンプレートの組み込みタグではこれを実行できないことがわかります。さらに、play1.2.4テンプレートでマルチパラメーター初期化を使用したforループを使用したコンパイルエラーも発生します。whileループで動作させることができます:

%{
    int j = 0, i = 0;
    while (i*i <= j) {
}%
        ${i}^2 <= ${j}
%{
        i++;
        j = j+2;
    }
}%
//prints
//0^2 <= 0
//1^2 <= 2
//2^2 <= 4
于 2012-06-19T12:19:17.893 に答える