Grails: как настроить оболочку ответа в фильтре Grails? - PullRequest
2 голосов
/ 23 апреля 2011

Я хочу изменить содержимое ответа на определенные запросы Grails.Как настроить ResponseWrapper в фильтре запросов?

Я надеялся, что это будет следующим, но ответ доступен только для чтения:

class MyFilters {
    def filters = {
        wrapFoo(controller:'foo', action:'bar') {
            before = {
                response = new MyResponseWrapper(response)
            }
        [...]

Спасибо!

1 Ответ

6 голосов
/ 23 апреля 2011

Вы не можете - фильтры Grails являются обертками для Spring HandlerInterceptors и вызываются дальше по цепочке обработки, чем фильтры сервлетов. Если вы хотите обернуть ответ, вам нужно использовать настоящий фильтр сервлетов.

Создайте класс в src / java или src / groovy, который реализует javax.servlet.Filter, и зарегистрируйте его в web.xml, как если бы вы использовали приложение не-Grails. Чтобы получить доступ к web.xml, запустите grails install-templates и отредактируйте файл в src / templates / war

...