2014-11-03 68 views
-1

WhenI嘗試訪問params在聖盃過濾器,在一個叫於前{}封閉效用方法獲得:獲得Grails中篩選獲得PARAMS

groovy.lang.MissingPropertyException: No such property: params for class: myproject.MyFilters 

如何訪問params相當於對象在過濾器?

感謝

+1

您將需要提供更多有關您的過濾器的信息。在過濾器的哪個部分你試圖得到'params'?之前,之後,後視圖?這是一個解析的請求?未解析的請求?你可以在你的問題中提供的更詳細的信息,你會得到更好的答案。 – 2014-11-03 19:05:32

+0

我不確定爲什麼這個問題得到了「不清楚你問什麼」的近距離投票。目前還不清楚你嘗試過什麼,但你所問的問題似乎很清楚。 – 2014-11-03 20:22:31

+0

請粘貼您的代碼 – 2016-07-16 06:32:05

回答

4

你可以做這樣的事情......

// 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作爲參數到效用方法。

// 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" 
    } 

}