当我尝试在Grail过滤器中访问params
时,在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"
}
}
}
}
编辑
我现在看到这个问题已经被编辑了。如果你想引用从过滤器调用的实用程序方法中的params,根据你真正想做的事情,你有很多选项,但最有可能的是将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"
}
}