Двойное закрытие не удается в 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: ожидание '}', найдено ')' @ line 49, столбец 134. столбец 134. heets.fumber {.
Кажется, проблема в двойном закрытии, так как я нашел здесь сообщение об ошибке.
К сожалению, решение из сообщения об ошибке с %=
а также %
в начале и конце тега не работает для меня.
Есть ли другие обходные пути или решения для этой проблемы двойного замыкания?
Я использую Grails 1.3.7.
2 ответа
Возможно, вам придется разделить это на две строки.
Попробуйте сначала назначить результаты поиска отдельной переменной
<% def r = tgs.singleGameSheets.find{it.matchnumber==1} %>
${r*.awayPlayer.fullname()}
Я бы порекомендовал, во-первых, выполнить этот вид обработки данных в контроллере и передать данные, которые как можно лучше подготовлены вплоть до представления.
Если вы не можете сделать это, я бы порекомендовал использовать скобки:
${tgs.singleGameSheets.find{it.matchnumber==1}.awayPlayer.fullname()}
становится
${(tgs.singleGameSheets.find{it.matchnumber==1}.awayPlayer.fullname())}
Это работало для меня в прошлых случаях, когда я должен был сделать ${(someCollection.findAll { someClause })}