вопросы о Grails - страница, запрос, флеш - PullRequest
1 голос
/ 25 ноября 2011

В руководстве grails показан следующий пример:

<g:set var="now" value="${new Date()}" scope="request" />

, а также указывает, что по умолчанию переменные, определенные в наборе, являются областью действия страницы (вне выбора страницы, запроса, flash, сессии и приложения). Мне интересно, какова разница между областью страницы и запросом, и каков пример использования этой разницы.

Кроме того, в случае с областью флэш-памяти в руководстве указывается: «Grails поддерживает концепцию области флэш-памяти как временного хранилища для атрибутов, которые должны быть доступны только для этого запроса и следующего запроса. После этого атрибуты очищаются. Это полезно для установки сообщения непосредственно перед перенаправлением. "

Мне не сразу понятно, как перенаправление относится к «этому запросу и следующему запросу», поскольку приведенный ими пример перенаправления - перенаправление с одного действия контроллера на другое, которое не отвечает на двух страницах / http ответы отправляются клиенту?

Надеемся, что эти два вопроса имеют смысл - то есть разница в высоком уровне между страницей и областью запроса и как перенаправление между действиями полезно для области флеш-памяти?

1 Ответ

3 голосов
/ 25 ноября 2011

A redirect(controller: "foo", action:"bar") соответствует новому запросу (по крайней мере, в контексте сервлета). Именно поэтому вам нужно, чтобы flash был своего рода «областью двух запросов», действие, которое вы посылаете, обрабатывает ваше перенаправление как новый запрос. Вы можете явно избежать этого, используя chain ().

Что касается разницы между страницей и областью запроса, я понимаю, что область страницы является более или менее моделью, в которой работает данный процесс представления / рендеринга, тогда как запрос относится ко всему циклу запроса. Это означает, что все, что вы передаете представлению в возврате действия (или материал, который вы вставили в model: [] из render()), является «областью действия страницы».

Что касается ручного примера, я не имею ни малейшего понятия, почему они вообще показывают какую-либо область видимости в представлении g: операция set, в общем случае в любом случае следует избегать установки переменных в представлении (разделение задач и всего этого джаза).

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