【问题标题】:Grails - cross controller code, execute on every requestGrails - 跨控制器代码,在每个请求上执行
【发布时间】:2011-07-22 06:21:04
【问题描述】:

有没有办法在调用任何控制器操作之前执行一些代码?

我需要根据 get 参数的值设置会话变量,而不考虑调用哪个控制器。

当然,一旦这个处理完成,请求需要按照正常的方式到达相应的控制器/动作。

谢谢

【问题讨论】:

    标签: grails grails-controller


    【解决方案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

      【讨论】:

        猜你喜欢
        • 2018-10-16
        • 1970-01-01
        • 2016-03-07
        • 2019-09-14
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2014-12-05
        相关资源
        最近更新 更多