почему мы используем замыкания в g: select optionvalue


Я могу понять, что такое замыкания. я могу понять ниже пример.

    def list = ['a','b','c','d']
    def newList = []

    def clos = { it.toUpperCase() }
    list.collect( newList, clos )

assert newList == ["A", "B", "C", "D"]  

Я пошел посмотреть g: select documentation. я видел внизу.

 <g:select optionKey="id" optionValue="${{it.title?.toUpperCase()}}" name="book.title" from="${bookList}" />

Я не понял ${{это.название?.метод touppercase()}}.

Я понимаю логику, что для каждого объекта заголовок преобразуется в верхний регистр, но зачем нам нужно двойное "{}"..

Почему он не работал, используя ${it.название?.заглавные буквы()}

Ссылка на документацию Введите описание ссылки здесь

1 3

1 ответ:

Внешний ${ } не является замыканием, этовыражение GSP , только внутренний {} является замыканием. Если вы ставите только ${it.название?.метод touppercase()} вы не передаете параметр закрытия, но собственно "его.название?.toUpperCase () " разрешенное значение.