如何在GSP中循环?

Siv*_*iva 12 grails gsp

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

有没有办法在gsp中做到这一点

rdm*_*ler 22

关于什么

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

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

更新:

试了一下:

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

作品.

<% def count=5 %>
<g:each in="${1..count}" var="c" >
  ${c}
</g:each>
Run Code Online (Sandbox Code Playgroud)

也工作,甚至更短.

UPDATE2:

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

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

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

  • 不会'in ="$ {1..paramsValue.ruleCount}"``工作? (2认同)