Grails - 跨控制器代码,在每个请求上执行
Posted
技术标签:
【中文标题】Grails - 跨控制器代码,在每个请求上执行【英文标题】:Grails - cross controller code, execute on every request 【发布时间】:2011-07-22 06:21:04 【问题描述】:有没有办法在调用任何控制器操作之前执行一些代码?
我需要根据 get 参数的值设置会话变量,而不考虑调用哪个控制器。
当然,一旦这个处理完成,请求需要按照正常的方式到达相应的控制器/动作。
谢谢
【问题讨论】:
【参考方案1】:听起来你想使用filter。
例如grails-app/conf/MyFilter.groovy
class MyFilter
def filters =
extractSomething(controller: '*', action: '*')
before =
session.setAttribute('foo', params['paramName'])
【讨论】:
【参考方案2】:如果与多个或所有控制器一起使用,过滤器会很好,但可能会变得昂贵。 你也可以试试拦截器:
def beforeInterceptor =
session.setAttribute('foo', params['paramName'])
http://www.grails.org/Controllers+-+Interceptors
【讨论】:
以上是关于Grails - 跨控制器代码,在每个请求上执行的主要内容,如果未能解决你的问题,请参考以下文章