0
我需要創建一個自定義的GSP,其領域模型設計如下未關閉的GSP表達:Grails的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發動機抱怨未關閉的GSP表達這是不正確的 - G:textarea的被關閉,你可以在上面看到 - ,我相信真正的問題是表達式
${questionInstance?.choiceCollection[${i}]?.description}
它涉及嵌套的GSP表達式。
問題:我是否缺少一些功能?如果是這樣,我該怎麼做才能克服我的障礙?
的Grails版本:2.1.1
感謝(+1)。現在,在用TreeSet初始化SortedSet之後,我得到了沒有方法的簽名:java.util.TreeSet.getAt()適用於參數類型:(java.lang.Integer)?你知道爲什麼嗎 ?我該怎麼做才能運行我的應用程序? –
是的,你不能從一個Set,甚至一個SortedSet中獲取位置元素:-(你可能想從Set設置到一個List,或者將這些項目保存在List中,並使用list.unique()。 sort()'來模擬你從'TreeSet'得到的功能,或者你可以使用'each'來迭代集合,而不是試圖使用整數索引,即:'([1,2,3]作爲TreeSet).each {println it}' –
@ArthurRonaldFDGarcia添加了一些關於替換'each' –