Gau*_*rma 9 templates for-loop playframework-2.1
我有一个列表,我正在回传给视图.
public static Result index() {
List<String> list = new ArrayList<String>();
list.add("idea 1");
list.add("idea 2");
list.add("idea 3");
list.add("idea 4");
list.add("idea 5");
list.add("idea 6");
list.add("idea 7");
return ok(index.render(list));
}
Run Code Online (Sandbox Code Playgroud)
我想一次迭代它3,以便它显示如下:
<ul>
<li>idea 1</li>
<li>idea 2</li>
<li>idea 3</li>
</ul>
<ul>
<li>idea 4</li>
<li>idea 5</li>
<li>idea 6</li>
</ul>
<ul>
<li>idea 7</li>
</ul>
Run Code Online (Sandbox Code Playgroud)
我无法弄清楚如何使用for循环来做到这一点.
我有这个Java代码,只是无法将其转换为Play框架模板代码:
int size = list.size();
int loopSize = (int) Math.ceil(size / 3.0);
int counter = 0;
for(int j = 0 ; j < loopSize; j++) {
System.out.println("---------------------");
for (int i = 0; i < 3; i++) {
if(counter < size) {
System.out.println(list.get(counter));
counter++;
} else {
break;
}
}
System.out.println("---------------------");
}
Run Code Online (Sandbox Code Playgroud)
Aer*_*rus 12
这应该工作:
@(list: List[String])
@for(index <- 0 until list.size){
@if(index % 3 == 0){
<ul>
}
<li>@list(index)</li>
@if(index % 3 == 2 || index == (list.size - 1)){
</ul>
}
}
Run Code Online (Sandbox Code Playgroud)
这是一个更加Scala风格的版本:
@(list: List[String])
@list.grouped(3).map { group =>
<ul>
@group.map { item =>
<li>@item</li>
}
</ul>
}
Run Code Online (Sandbox Code Playgroud)
(另一个回答更直接地回答了问题,特别是提问者可能没有在他的项目的其余部分使用Scala).
| 归档时间: |
|
| 查看次数: |
11523 次 |
| 最近记录: |