2
<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

4 回答 4

5

您可以使用三元运算符。

<g:each in="${list.size() < 10 ? list : list.subList(0, 10)}" var="data" status="idx">
    ${idx} --- ${data}<br/>
</g:each>
于 2013-08-14T20:00:32.813 回答
2

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

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

//在这里做你的工作

于 2015-09-17T23:32:57.003 回答
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 作为列表的索引。

于 2013-08-14T07:16:01.380 回答
0

干得好:

<g:set var="checkings" value="${checking[0..(Math.min(checking.size()-1, 9))]}" />
<g:each in="${checkings}" status="i" var="checking2">
</g:each>
于 2013-08-14T13:15:46.327 回答