Grails:为了在URL映射中实现错误处理,在控制器中设置什么?

时间:2014-06-09 10:02:26

标签: grails grails-controller

使用Grails 2.3.9

在控制器中,我尝试发出请求,请完成URL映射中声明的错误处理。我已经阅读了docs,但我仍然无法了解其工作原理。

从文档示例中:

static mappings = {
   "403"(controller: "errors", action: "forbidden")
   "404"(controller: "errors", action: "notFound")
   "500"(controller: "errors", action: "serverError")
}

例如在控制器中:

def update() {
    // do some tests
    if(forbidden) {
        // Go to 403
        //response.status = response.SC_FORBIDDEN
        render status: 403 
        return
    }
    // deal with normal case
}

我需要在控制器中做什么才能登陆403动作?执行response.status = response.SC_FORBIDDENrender status: 403无效。

我能够通过抛出自定义异常ForbiddenException来实现遍历映射403,而url映射包含:

"403"(controller: "errors", action: "forbidden", exception: ForbiddenException)

但是,我想,通过另一个控制器到达错误控制器也应该为每个案例抛出异常,不是吗?

1 个答案:

答案 0 :(得分:2)

试试这个

response.sendError 403

并确保您已经在URL映射中创建了控制器和操作,并从操作中呈现了一些内容。