Grails:如何在Grails过滤器中设置响应包装器?

Dea*_*ses 2 grails servlet-filters

我想修改特定Grails请求的响应内容.如何在请求过滤器中配置ResponseWrapper?

我曾希望它会如下,但响应是一个只读属性:

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

谢谢!

Bur*_*ith 6

你不能 - Grails过滤器是Spring HandlerInterceptors的包装器,并且比servlet过滤器在处理链中进一步调用.如果要包装响应,则需要使用真正的servlet过滤器.

在src/java或src/groovy中创建实现javax.servlet.Filter并在web.xml中注册它的类,就像在非Grails应用程序中一样.要访问web.xml grails install-templates,请在src/templates/war中运行并编辑该文件