3

こんにちは、私たちのアプリケーションの一部で、フィルターからコントローラーにデータを渡す必要があります。これは、コントローラーのリクエストオブジェクトとbeforeインターセプターを使用して実行できることを読みました。

いくつかのサンプルコード:

class SomeService {
    def doSomething(request, params) {
        request.foo = "helloworld"
    }
}

class SomeFilter {

    def someService

    def filters = {
        all(controller:'*', action:'*') {
            before = {
                // service does something and places object in request
                // using request.foo = "helloworld"
                someService.doSomething(request, params)
            }
        }
    }
}

class SomeController {

    def foo

    def beforeInterceptor = {
        foo = request.foo
    }

    def index = { 
        println foo
    }
}

これは物事を行うための効率的な方法ですか、それとも他の方法がありますか?

4

1 に答える 1

3

使用している方法(データを要求属性に割り当てる)は効率的であり、レイヤー間で要求固有のデータを通信するために広く使用されている方法です。

grailsのベースとなるSpringフレームワークは、これを広範囲に使用します。ここで使用する属性キーの一部を確認できます:http ://static.springsource.org/spring/docs/3.0.x/api/org/springframework/web/util/WebUtils.html

于 2013-01-24T21:20:27.883 に答える