Groovy 在play框架中的模板中循环两个条件?
在playframework的视图模板中执行此操作的方法是什么?我用groovy做了标记,因为显然,play模板引擎是基于groovy的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> </
%{
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%确定你想做什么;目标是什么?什么不起作用?我有一个表,它是通过两个查询填充的。第一个列表ieuserdata
填充名称和ID。第二个列表iefoo
可能小于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