我需要创建一个自定义gsp,其域模型设计如下
class Question {
SortedSet<Choice> choiceCollection;
static hasMany = [choiceCollection:Choice]
static mappping = {
choiceCollection(joinTable:false)
}
}
每个问题对象有五个选择。所以,我创建了以下代码片段
create.gsp
<g:each var="i" in="${(1..5)}">
<div class="fieldcontain required">
<label for="description">
Option ${i}.
<span class="required-indicator">*</span>
</label>
<g:textArea name="choiceCollection[${i}].description" cols="40" rows="5" maxlength="2000" value="${questionInstance?.choiceCollection[${i}]?.description}"/>
</div>
</g:each>
虽然Grails GSP引擎抱怨 Unclosed GSP表达但这不正确 - g:textArea已关闭,如上所示 - 我相信真正的问题是表达式
${questionInstance?.choiceCollection[${i}]?.description}
涉及嵌套的GSP表达式。
问题:我错过了一些功能吗?如果是这样,我该怎么做才能克服障碍?
Grails版本:2.1.1
答案 0 :(得分:3)
应该不是
${questionInstance?.choiceCollection[${i}]?.description}
是
${questionInstance?.choiceCollection[ i ]?.description}
设置位:
尝试类似:
<g:each var="choice" status="i" in="${questionInstance?.choiceCollection}">
因此i
仍包含您的索引,但choice
包含您尝试使用questionInstance?.choiceCollection[${i}]