Grails - 前十个值只有g:每个

时间:2013-08-14 07:04:59

标签: loops grails each gsp

<g:each in="${checking}" status="i" var="checking2">
<g:if test="${i<10}" >//Break The Loop</g:if>
//Do My Work Here
</g:each>

在上面的示例中,如果可以从“检查”中仅获得前十个值。假设检查返回100个值,我想只访问前十个值。

我知道可以在控制器中使用max:10并在列表中只返回10个值,但我想要如上所述。

PS:我是新手......

4 个答案:

答案 0 :(得分:4)

您可以使用三元运算符。

<g:each in="${list.size() < 10 ? list : list.subList(0, 10)}" var="data" status="idx">
    ${idx} --- ${data}<br/>
</g:each>

答案 1 :(得分:1)

尝试这样的事情

<g:each in="[0..9]" var="index">
  <g:set var="item" value="${checking[index]}" />
  //do whatever you want with item
</g:each>

简而言之,迭代范围0..9并使用index作为列表的索引。

答案 2 :(得分:1)

参考Groovy JDK API Documentation,您可以使用take()在循环之前减少List

<g:each in="${checking.take(10)}" status="i" var="checking2">

//你的工作吗?

答案 3 :(得分:0)

你走了:

<g:set var="checkings" value="${checking[0..(Math.min(checking.size()-1, 9))]}" />
<g:each in="${checkings}" status="i" var="checking2">
</g:each>