假设我从控制器那里获得了这些数据,我想将其传递给我的 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。
我怎样才能做到这一点?
假设您的模型包含以下内容
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>
好吧,
我似乎设法在 GSP 中迭代对象
<g:each var='obj' in='${test}'>
<g:each var='subObj' in='${obj.value}'>
<p>${subObj}</p>
</g:each>
</g:each>
但有点不够优雅。
我也可以用这个来做,正如多纳尔在他的答案中所说的那样
<g:each var='obj' in='${test.value}'>
<p>${obj}</p>
</g:each>
但是我认为,如果我想单独且唯一地迭代测试对象中的每个项目,那将很难。
任何人都可以随时修复我的方法。