Groovy 在play框架中的模板中循环两个条件?

Groovy 在play框架中的模板中循环两个条件?,groovy,playframework,template-engine,Groovy,Playframework,Template Engine,在playframework的视图模板中执行此操作的方法是什么?我用groovy做了标记,因为显然,play模板引擎是基于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> </

在playframework的视图模板中执行此操作的方法是什么?我用groovy做了标记,因为显然,play模板引擎是基于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>
%{
对于(inti=0,intj=0;i
如果这是不可能的,或者只是出于好奇:

我还尝试将foo作为hashmap传递,其键已经存在于userdata中。我尝试了类似的方法,但没有成功:


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

既然您在谈论groovy,我想您使用的是playframework 1.x。playframework 2使用的是scala模板

你可以循环两个条件,就像在其他语言中一样。语法只是有点不同

爪哇:

for(int i=0;i<10;i++){
对于(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}
#{列出项目:0..10,如:'i'}
#{列表项:0..10,如:'j'}
i:${i},j:${j}

#{/list} #{/list}

查看“播放模板内置标记”无法执行此操作的信息。此外,在播放1.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
%{
int j=0,i=0;

虽然(我*我不是100%确定你想做什么;目标是什么?什么不起作用?我有一个表,它是通过两个查询填充的。第一个列表ie
userdata
填充名称和ID。第二个列表ie
foo
可能小于
userdata
是一个数字列表。现在我需要显示这些在我的视图中有两个列表。因此,我尝试在for循环中使用两个条件,但play对此不太满意。因此,我需要一种在单个循环中迭代两个列表的方法。我不能使用userdata中的变量,因为我的索引超出了范围。列表没有用处,因为我已经有了一个表结构和循环。是的,我使用的是1.2.4.我在发布前查看了列表标签,但找不到一种方法来实现我想要的结果。
%{
    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