Вот проблема: у меня есть remoteForm, который сам по себе работает нормально.Я отладил контроллер, и каждая команда проходит.Однако, если возникает исключение, и я устанавливаю сообщение flash.error.Сообщение будет отображаться только ПОСЛЕ того, как я вручную нажму F5 (Обновить).Я не понимаю, почему AJAX-вызов работает, но флэш-сообщения пусты.
У меня есть удаленная форма (в index.gsp):
...
<g:formRemote name="remoteForm"
url="[ controller: 'document',
action: 'search']"
onLoading="showSpinner();"
update="searchBlock"
action="${createLink(controller: 'document', action:'search')}"
>
<div class='info_message'>
${flash.message}
</div>
<div id="searchBlock">will be exchanged</div>
......
Контроллер:
......
} catch (Exception e){
log.error(e)
flash.error = e.getMessage()
flash.message="HINTTEST"
render (template:'searchNoResult')
return
}
.....
Шаблон (из _searchNoResult) имеет следующее содержимое:
<span>Sorry, your search yielded no result.</span>
<g:if test='${flash.error}'>
<div class='error_message'>
Error: ${flash.error}
</div>
</g:if>
<g:if test='${flash.messages}'>
<div class='info_message'>
Hint: ${flash.message}
</div>
</g:if>
Документация гласит: флэш-памятьОбласть действия проходит через текущий запрос и вызов после этого.Если я использую обычную форму и отправляю, все работает, но я хочу использовать ajax и шаблоны визуализации, поэтому мне не придется повторять код так часто.
Редактировать 1 Сначала индекс.GSP отображается.RemoteForm изменяет div seachBlock с шаблоном, который содержит flash.messages.Они не заполнены.
Grails версии 1.3.7, в настоящий момент обновление невозможно.
Редактировать 2 Исключение e не было исключением, которое былооригинал, брошенный мной.Сообщение было пустым, что привело к пустым сообщениям ....