如果我有来自我的控制器的数据,我想将其传递给我的GSP
def test = [value: ['TEST1', 'TEST2', 'TEST3']]
在我的GSP中,我有以下
<g:set var="counter" value="${0}"/>
<g:set var="count" value="${count}"/>
<g:while test="${counter < count}">
<g:set var="counter" value="${counter+1}"/>
<g:each var='obj' in='${test}' status='i'>
<g:textField id='justATest1' name='justATest' value='obj.value'>
<g:textField id='justATest2' name='justATest' value='obj.value'>
<g:textField id='justATest3' name='justATest' value='obj.value'>
</g:each>
</g:while>
我想要它,以便justATest1将获得TEST1,justATest2将获得TEST2而justATest3将获得TEST3。
我如何实现这一目标?
答案 0 :(得分:2)
假设您的模型包含以下内容
def myAction() {
[value: ['TEST1', 'TEST2', 'TEST3']]
}
这应该这样做
<g:each status="i" in="${value}" var="item">
<g:textField id="justATest${i}" name='justATest' value="${item}">
</g:each>
答案 1 :(得分:0)
好吧好像我设法在GSP中迭代对象
<g:each var='obj' in='${test}'>
<g:each var='subObj' in='${obj.value}'>
<p>${subObj}</p>
</g:each>
</g:each>
但有点不够优雅。
我也可以这样做,就像Donal在他的回答中所说的那样
<g:each var='obj' in='${test.value}'>
<p>${obj}</p>
</g:each>
但是如果我想分别和唯一地迭代测试对象中的每个项目,我认为这很难。
任何人都可以随意修复我的方法。