获取对Grails筛选器中参数的访问权限

获取对Grails筛选器中参数的访问权限,grails,filter,Grails,Filter,当我尝试访问Grail筛选器中的参数时,在before{}闭包中调用的实用程序方法中,我得到: groovy.lang.MissingPropertyException: No such property: params for class: myproject.MyFilters 如何访问筛选器中的params对象的等效项 谢谢你可以这样做 // grails-app/conf/paramsinfilter/DemoFilters.groovy package paramsinfilter

当我尝试访问Grail筛选器中的参数时,在before{}闭包中调用的实用程序方法中,我得到:

groovy.lang.MissingPropertyException: No such property: params for class: myproject.MyFilters
如何访问筛选器中的params对象的等效项


谢谢

你可以这样做

// grails-app/conf/paramsinfilter/DemoFilters.groovy
package paramsinfilter

class DemoFilters {

    def filters = {
        all(controller:'*', action:'*') {
            before = {
                // params is available here
                println "Params in before filter: $params"
            }
            after = { Map model ->
                // params is available here
                println "Params in after filter: $params"
            }
            afterView = { Exception e ->
                // params is available here
                println "params in afterView filter: $params"
            }
        }
    }
}
编辑

我现在知道问题已经编辑好了。如果要引用从筛选器调用的实用程序方法中的参数,根据实际尝试执行的操作,您有许多选项,但最有可能的操作是将参数作为参数传递给实用程序方法

// grails-app/conf/paramsinfilter/DemoFilters.groovy
package paramsinfilter

class DemoFilters {

    def filters = {
        all(controller:'*', action:'*') {
            before = {
                // params is available here
                helper(params)
            }
            after = { Map model ->
                // params is available here
                helper(params)
            }
            afterView = { Exception e ->
                // params is available here
                helper(params)
            }
        }
    }

    private helper(params) {
        println "Params in helper: $params"
    }

}

您需要提供更多有关过滤器的信息。您试图在筛选器的哪个部分获取参数?前,后,后视?这是一个已解析的请求吗?未解析的请求?你在问题中提供的细节越多,你得到的答案就越好。我不知道为什么这个问题因为你问的不清楚而被投了一票。不清楚您尝试了什么,但您的问题对我来说似乎很清楚。请粘贴您的代码