1

ご挨拶!次のようにコントローラーにインターセプトがあります。

    def beforeInterceptor = {

    if( session.sessionRoastId == null ){

        session.intendedController = params.controller
        session.intendedAction = params.action

        redirect( controller: 'roastId', action: 'enterRoastId' )
        return false
    }
}

...リダイレクトビジネスが処理された後、元のコントローラーアクションに進み、インターセプトが取得されたことを確認する適切な方法は何ですか?

現在、後でアクセスできるように詳細をセッションに入れていますが、より良い方法はありますか?

ありがとう。

4

1 に答える 1

1

元のターゲットURIをパラメーターとして「enterRoastId」アクションに渡してから、そこにリダイレクトできます。

def beforeInterceptor = {
    if( session.sessionRoastId == null ){
        redirect( controller: 'roastId', action: 'enterRoastId', params: [
            action: params.action, 
            controller: params.controller
        ])
        return false
    }
}

次に、enterRoastIdの後のアクションで:

if (params.action && params.controller) {
    redirect(controller: params.controller, action: params.action)
    return false
}

アクション/コントローラーを公開したくない場合は、値を「enterRoastId」ビューに渡し、非表示フィールドを介して戻します。

于 2011-05-03T11:41:50.007 に答える