GSP中双重关闭失败

时间:2012-01-01 12:19:40

标签: grails closures gsp

在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。

2 个答案:

答案 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 })}

的过去,这对我有用