2012-01-01 56 views
1

未能在GSP文件我寫的是這樣的:雙封在GSP

${tgs.singleGameSheets.find{it.matchnumber==1}.awayPlayer.fullname()} 

但我收到以下錯誤:

org.codehaus.groovy.control.MultipleCompilationErrorsException: startup failed: C__STS_Projekte_TischtennisManager_grails_app_views_league__showGameSheet_gsp: 49:expecting '}', found ')' @ line 49, column 134. heets.find{it.matchnumber==1 })

這個問題似乎是雙封我」我發現了一個錯誤報告here

不幸的是,錯誤報告中的%=%在標籤的開頭和結尾都不適用於我。

是否有任何其他解決方法或此解決方案的雙閉合問題?

我正在使用Grails 1.3.7。

回答

3

您可能必須將其分成兩行。

嘗試分配查找結果到一個單獨的VAR第一

<% def r = tgs.singleGameSheets.find{it.matchnumber==1} %> 
${r*.awayPlayer.fullname()} 
+0

偉大的,它的工作原理,但沒有*在'r *'因爲「查找」返回一個單一的對象,而不是一個列表。非常感謝! – Rene 2012-01-01 12:56:47

+0

很酷 - 對不起,我習慣於更經常地處理findAll,*是我的默認擊鍵:) – mgkimsal 2012-01-02 13:47:30

0

我建議首先做這樣的數據處理在儘可能充分的準備下到視圖控制器和第一手資料。

如果無法做到這一點,我會建議您嘗試使用括號:

${tgs.singleGameSheets.find{it.matchnumber==1}.awayPlayer.fullname()} 

成爲

${(tgs.singleGameSheets.find{it.matchnumber==1}.awayPlayer.fullname())} 

,我不得不這樣做${(someCollection.findAll { someClause })}

這已經爲我工作在過去的場合