如何在GSP中循环?

时间:2012-11-14 07:15:06

标签: grails gsp

我有GSP文件,其中我将从控制器获取一个值,例如${paramsValue?.ruleCount}是3并且基于此我必须创建表行。

有没有办法在gsp

中做到这一点

1 个答案:

答案 0 :(得分:21)

怎么样

<g:each in="${(1..paramsValue?.ruleCount).toList()}" var="count" >
   ...
</g:each>

但如果您准备一份包含要在控制器中显示的内容的列表会更好......

更新

试了一下:

<% def count=5 %>
<g:each in="${(1..count).toList()}" var="c" >
  ${c}
</g:each>

作品。

<% def count=5 %>
<g:each in="${1..count}" var="c" >
  ${c}
</g:each>

也有效,甚至更短。

UPDATE2:

您似乎想要使用URL参数作为计数。在这种情况下,此代码将起作用:

<g:each in="${params.count?1..(params.count as Integer):[]}" var="c" >
  ${c}
</g:each>

它将检查是否有count参数。如果没有,它将返回一个空列表进行迭代。如果设置了count,它将把它强制转换为Integer,创建一个Range并隐式地将它转换为一个列表来迭代。