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

标签 grails servlet-filters

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

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

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

谢谢!

最佳答案

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

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

关于Grails:如何在 Grails 过滤器中设置响应包装器?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5763683/

相关文章:

列表映射的 Grails 命令对象绑定(bind)失败

grails - Grails Spring Security Facebook登录错误

servlets - 在 servlet 过滤器中创建错误页面会导致错误 "Writer already obtained"

java - servlet 过滤器的生命周期

grails - HTTP状态404-Grails

grails - 如何在一个域类中混合 'Reference' 和 'No Reference' 属于关系?

grails - Grails + Spring Security Core:未经授权时如何响应自定义HTTP状态?

java - Jersey :InjectableProvider 没有被选中 - Spring

java - 我如何知道 HttpServletRequest 是否受 <security-constraint> 约束?

Java Servlet 过滤器和 SSL