Grailsはコントローラの前に実行されるfiltersを提供します。Grailsフィルタの構文、またはGrailsの外でGrailsフィルタを呼び出す方法
class SecurityFilters {
def filters = {
myFilter(controller:'*', action:'*') { // What are those weird colons??
print "I'm filtering!"
// Code that does the filtering goes here
}
}
}
これらは素晴らしい仕事が、それは私が前に見てきたすべてのGroovyのコードのように見えていないように私はより良い構文を理解したいと思います:彼らはこのようになり、クラスで定義されています。特に、上記の行はmyFilter
で始まり非常に奇妙に見えます。これはmyFilter
というメソッドのメソッド定義ですか?もしそうなら、各パラメータの後には:'*'
はどういう意味ですか?私はそれがデフォルトのパラメータ値かもしれないと思ったが、それは='*'
だろう。 のコロンを使用した名前付きパラメータは、前にを呼び出していますが、それ以外のところではmyFilter()
を定義していないため、メソッド呼び出しできませんでした。
通常のGroovyクラスからフィルタリングコードを実行する方法を教えてもらえればもっと良いと思います。つまり、上記の行を含むMyFilters.groovyというファイルがある場合、このGroovyコードをどのように処理して「フィルタリングしていますか」というメッセージを表示するにはどうすればいいですか?
import MyFilters
def mf = new MyFilters()
mf.filters.somethingGoesHere // Help! How do I finish this line so it calls my filtering code?
大きな質問リス!私はちょうど同じ問題を争っている - それを求めるおかげで! – alpian
私は何かを知る必要がある....私はほとんど眠ることができない、笑! – Topera