未封闭的GSP表达式:Grails GSP引擎无法解析嵌套的GSP表达式

时间:2012-10-05 08:37:19

标签: grails groovy gsp

我需要创建一个自定义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

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}]

的内容