在GSP文件中,我写了这样的东西:
${tgs.singleGameSheets.find{it.matchnumber==1}.awayPlayer.fullname()}
但是我收到以下错误:
org.codehaus.groovy.control.MultipleCompilationErrorsException: 启动失败: C__STS_Projekte_TischtennisManager_grails_app_views_league__showGameSheet_gsp: 49:期待'}',找到')'@第49行,第134栏。 heets.find {it.matchnumber == 1})
问题似乎是双重关闭,因为我发现了一个错误报告here。
不幸的是,来自bug报告的解决方案在标记的开头和结尾处有%=
和%
对我不起作用。
这种双重封闭问题还有其他解决方法或解决方案吗?
我正在使用Grails 1.3.7。
答案 0 :(得分:3)
您可能需要将其拆分为两行。
尝试将查找结果分配给单独的var first
<% def r = tgs.singleGameSheets.find{it.matchnumber==1} %>
${r*.awayPlayer.fullname()}
答案 1 :(得分:0)
我建议首先在控制器中进行这种数据处理,并尽可能准备好直到视图的数据。
如果你不能这样做,我建议你尝试使用括号:
${tgs.singleGameSheets.find{it.matchnumber==1}.awayPlayer.fullname()}
变为
${(tgs.singleGameSheets.find{it.matchnumber==1}.awayPlayer.fullname())}
在我必须做${(someCollection.findAll { someClause })}