Мы столкнулись с ситуацией, когда иногда flash.message отображается правильно, но иногда оно вообще не отображается.Буду признателен за любые советы по устранению неполадок.
Вот как выглядит код в нашем контроллере:
log.debug("missing required fields ${errorMsg}")
flash.error = errorMsg
...
log.debug("leaving moveToDraft with flash.message: ${flash.message} and
flash.error: ${flash.error}")
redirect(controller: 'challengeManagement', action: 'show', id:
challenge.challengeNumber)
Вот как выглядит код представления:
<g:if test="${flash.message}">
<div class="message"><%=flash.message%></div>
</g:if>
<g:if test="${flash.error}">
<div class="error"><%=flash.error%></div>
</g:if>
Этот код всегда работает для меняна моей машине разработки и тестовых системах, но для нашего специалиста по обеспечению качества примерно половина времени флэш-сообщение не отображает.Из операторов log.debug я подтвердил, что он устанавливается и имеет значение при выходе из метода контроллера.Глядя на «просмотр источника» со страницы, становится ясно, что div не существует.Они никогда не были выписаны, а это значит, что условия испытаний не были выполнены.
Теперь редирект 307 происходит после вышеупомянутого перенаправления.Так что это может быть проблемой, учитывая ограниченную область действия объекта flash ... за исключением того, что я также получаю перенаправление 307 и всегда вижу flash.message / flash.error на странице.
Есть ли способ отладки флэш-объекта, чтобы я мог видеть, когда он очищен?Кроме того, есть ли страница, которая описывает механизм более подробно?(Я читал, что это зависит от файлов cookie, но я не вижу его в списке файлов запросов).Любые другие идеи или мысли о том, как устранить неполадки?
Мой следующий шаг - переписать без использования flash-объекта, но меня беспокоит то, что я не понимаю, в чем проблема, и мы везде используем flash-объекты.