Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/spring-boot/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Grails:如何在Grails过滤器中设置响应包装器?_Grails_Servlet Filters - Fatal编程技术网

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

Grails:如何在Grails过滤器中设置响应包装器?,grails,servlet-filters,Grails,Servlet Filters,我想修改特定Grails请求的响应内容。如何在请求筛选器中配置ResponseWrapper 我本来希望是以下内容,但响应是只读属性: class MyFilters { def filters = { wrapFoo(controller:'foo', action:'bar') { before = { response = new MyResponseWrapper(response)

我想修改特定Grails请求的响应内容。如何在请求筛选器中配置ResponseWrapper

我本来希望是以下内容,但响应是只读属性:

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

谢谢

不可以-Grails过滤器是Spring HandlerInterceptor的包装器,在处理链的更上层被调用,而不是servlet过滤器。如果要包装响应,需要使用真正的servlet过滤器

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