Грааль: вне против возвращения - PullRequest
0 голосов
/ 14 ноября 2011

Странная проблема на Grails 1.2.4 только на моей машине ....

Мы используем пользовательский taglib, к которому можно обратиться из сервисов через gspTagLibraryLookup-bean из AppContext.

На моей локальной машине

    <my:span value="abc" title="${my.write(text:'123')}"/>

пишет:

    123<span title="">abc</span> <!-- what i see -->
    <span title="123">abc</span> <!-- what my collegue see -->

my: write определяется как:

    def write = {out << attrs.text}

Но: еслия использую return вместо out, html генерирует то, что видит мой коллега.

Кто-нибудь знает разницу?

1 Ответ

0 голосов
/ 14 ноября 2011

Значение аргумента для атрибута title оценивается перед передачей его в <my:span>. Таким образом, если вы определите write как {out << attrs.text} и будете использовать его в <my:span>, функция write запишет в out до того, как сделает span, и ничего не вернет - так что 123 будет записано выводится до <span>, а атрибут title будет пустым.

Если вы определите write как {return attrs.text}, его оценка ничего не записывает и возвращает 123, которое будет вставлено как значение атрибута title.

Не уверен, почему первое определение работает на машине вашего коллеги.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...