【问题标题】:Grails: how do I set up a response wrapper in a Grails filter?Grails:如何在 Grails 过滤器中设置响应包装器?
【发布时间】:2011-08-11 10:39:51
【问题描述】:
我想修改特定 Grails 请求的响应内容。如何在请求过滤器中配置 ResponseWrapper?
我希望它是以下内容,但响应是只读属性:
class MyFilters {
def filters = {
wrapFoo(controller:'foo', action:'bar') {
before = {
response = new MyResponseWrapper(response)
}
[...]
谢谢!
【问题讨论】:
标签:
grails
servlet-filters
【解决方案1】:
您不能 - Grails 过滤器是 Spring HandlerInterceptors 的包装器,并且比 servlet 过滤器在处理链的上游被调用。如果要包装响应,则需要使用真正的 servlet 过滤器。
在 src/java 或 src/groovy 中创建实现 javax.servlet.Filter 的类,并在 web.xml 中注册它,就像在非 Grails 应用程序中一样。要访问 web.xml,请运行 grails install-templates 并编辑 src/templates/war 中的文件