Двойное закрытие не удается в GSP - PullRequest
1 голос
/ 01 января 2012

В файле 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})

Проблема заключается в двойном закрытиикак я нашел сообщение об ошибке здесь .

К сожалению, решение из сообщения об ошибке с %= и % в начале и конце тега не работает для меня.

Существуют ли другие способы или решения этой проблемы двойного замыкания?

Я использую Grails 1.3.7.

Ответы [ 2 ]

3 голосов
/ 01 января 2012

Возможно, вам придется разделить это на две строки.

Попробуйте сначала назначить результаты поиска отдельной переменной

<% def r = tgs.singleGameSheets.find{it.matchnumber==1} %>
${r*.awayPlayer.fullname()}
0 голосов
/ 02 января 2012

Я бы рекомендовал сначала выполнить такого рода обработку данных в контроллере и передать данные, которые как можно лучше подготовлены вплоть до представления.

Если вы не можете сделать это, я бы порекомендовал попробоватьиспользовать круглые скобки:

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

становится

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

Это работало для меня в прошлых случаях, когда мне приходилось делать ${(someCollection.findAll { someClause })}

...