0

我需要创建一个自定义gsp,其域模型设计如下

class Question {

    SortedSet<Choice> choiceCollection;

    static hasMany = [choiceCollection:Choice]
    static mappping = {
        choiceCollection(joinTable:false)
    }

}

每个问题对象都有五个选项。所以,我创建了以下代码片段

创建.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

4

1 回答 1

3

不应该

${questionInstance?.choiceCollection[${i}]?.description}

${questionInstance?.choiceCollection[ i ]?.description}

设置位:

尝试类似:

<g:each var="choice" status="i" in="${questionInstance?.choiceCollection}">

所以i仍然包含您的索引,但choice包含您想要使用的内容questionInstance?.choiceCollection[${i}]

于 2012-10-05T08:41:21.407 回答