Вопросы о фильтрах чаш Грааля

В основном у меня есть 2 вопроса относительно фильтров чаш Грааля.

  1. Согласно документации чаш Грааля можно сделать что-то как ниже в фильтре
if (userId != paramsUserId) {
    flash.message = "You can only modify yourself"
    redirect(action: 'list')
    return false
}

Если вышеупомянутое условие верно затем, как оператор возврата будет выполняться?

  1. У меня может быть перенаправление в моем фильтре к некоторому действию, которое также имеет перенаправление?
5
задан user190982 5 June 2010 в 19:00
поделиться

1 ответ

1 - Возвращение false из фильтра предотвращает выполнение дальнейших фильтров (и действия, если оно находится в фильтре до). Браузер получит перенаправление 302 и перейдет к методу «списка», на который вы просили перенаправить.

http://grails.org/doc/2.3.7/guide/single.html#filterTypes

2 - да. перенаправление на что-то другое, что перенаправляет, нормально. Для браузера это действительно не имеет значения. Если вы посмотрите это в firebug, вы увидите, что такое перенаправление на самом деле. Когда вы перенаправляете, браузер получает ответ с кодом состояния HTTP 302 («Найдено»), этот ответ также включает URL-адрес, который браузер должен запросить следующим (то, на что вы перенаправляете, т. Е. URL-адрес для «списка» метод в примере выше). Затем браузер запрашивает этот URL-адрес, и он ведет себя так, как если бы это был первый запрос.

Вот почему флэш-область так полезна, вещи во флэш-области живут до следующего запроса, поэтому они охватывают перенаправления.

6
ответ дан 14 December 2019 в 13:27
поделиться
Другие вопросы по тегам:

Похожие вопросы: