13

私はかなり長い間Grailsを研究してきました。そして、フィルターとインターセプターについて少し調べました。どちらも、特定のコントローラーでセッションを追跡したり、許可されていないユーザーをリダイレクトしたりする機能はほぼ同じです。

しかし、いつ、なぜ Interceptor よりも Filter を使用する必要があるのか​​、またその逆を使用する必要があるのか​​ 、私は混乱しています。Inceptor には 2 つのコントローラー メソッドがbeforeInterceptorありafterInterceptor、Filter には 3 つの一般的なクロージャーおよびbeforeがあります。afterafterView

私の質問は、インターセプターに対してフィルターを使用することの長所と短所は何ですか、またはその逆です。このようにして、開発者は、特定のコントローラーでフィルターまたはインターセプターを使用して、追跡やリダイレクトなどを行う必要がある時期、場所、および理由を決定できます。

4

2 に答える 2

15

インターセプトロジックがそのコントローラーにのみ適用される場合は、コントローラーで一方または両方のインターセプターを使用します。

ロジックが複数(またはすべて)のコントローラーに適用される場合、ビューのレンダリング後に何かを行う必要がある場合(afterViewに相当するインターセプターはありません)、またはすべてを1か所に集中させたい場合はフィルターを使用します。別々のコントローラーファイルに分散します。

于 2012-07-26T03:30:48.093 に答える