【发布时间】:2012-11-02 16:37:15
【问题描述】:
我有 GSP 文件,我将从控制器获取一个值,例如 ${paramsValue?.ruleCount} 是 3,基于此我必须创建表行。
gsp有什么办法吗
【问题讨论】:
我有 GSP 文件,我将从控制器获取一个值,例如 ${paramsValue?.ruleCount} 是 3,基于此我必须创建表行。
gsp有什么办法吗
【问题讨论】:
怎么样
<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>
也有效,而且更短。
更新2:
您似乎想使用 URL 参数作为计数。此代码将在这种情况下工作:
<g:each in="${params.count?1..(params.count as Integer):[]}" var="c" >
${c}
</g:each>
它会检查是否有计数参数。如果没有,它将返回一个空列表进行迭代。如果设置了count,它会将其转换为Integer,创建一个Range并隐式地将其转换为一个列表以进行迭代。
【讨论】:
paramsValue?.ruleCount 不是数字吗?然后试试paramsValue?.ruleCount as Integer
[1..(paramsValue?.ruleCount as Integer)] 而不是 [1..paramsValue?.ruleCount as Integer]