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 回答