как вернуться к исходному месту назначения после перехвата в контроллере Grails - PullRequest
1 голос
/ 03 мая 2011

Привет! У меня есть перехват в контроллере так:

    def beforeInterceptor = {

    if( session.sessionRoastId == null ){

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

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

... после того, как дело о перенаправлении решено, как правильно перейти к первоначальному действию контроллера и посмотреть, что перехват перехватился?

Прямо сейчас я помещаю детали в сессию, чтобы получить к ней доступ позже, но есть ли лучший способ?

Спасибо.

1 Ответ

1 голос
/ 03 мая 2011

Вы можете передать исходный целевой 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» и передайте их обратно через скрытое поле.

...