Grails:在控制器中设置啥以达到 URL 映射中的错误处理?
Posted
技术标签:
【中文标题】Grails:在控制器中设置啥以达到 URL 映射中的错误处理?【英文标题】:Grails: What is to set in the controller in order to reach the error handling in the URL mapping?Grails:在控制器中设置什么以达到 URL 映射中的错误处理? 【发布时间】:2014-07-29 20:25:30 【问题描述】:使用 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_FORBIDDEN
或render status: 403
不起作用。
我能够通过抛出自定义异常 ForbiddenException 来实现通过映射 403,而 url 映射将包含:
"403"(controller: "errors", action: "forbidden", exception: ForbiddenException)
但是,我想,通过另一个控制器到达错误控制器也应该为每种情况抛出一个异常,不是吗?
【问题讨论】:
怎么样:response.sendError 403 @vahid:谢谢。然而,这给了我一个 404(无论错误代码是什么)和一个默认响应(未在 url 映射中声明)。 response.status = 403 渲染“一些响应”应该可以工作***.com/questions/1429388/…response.sendError 403
完美运行。确保您已在 URL 映射中创建了控制器和操作,并从操作中呈现了某些内容。
感谢 vahid 和 user1690588 再次确认这是正确的方法。当我尝试“sendError”时,我留下了异常。你们中的任何人都想发布这个作为答案吗?
【参考方案1】:
试试这个
response.sendError 403
并确保您已在 URL 映射中创建了控制器和操作,并从操作中呈现了某些内容。
【讨论】:
以上是关于Grails:在控制器中设置啥以达到 URL 映射中的错误处理?的主要内容,如果未能解决你的问题,请参考以下文章
请问在java中设置啥样的类型 才能在SQL中生成decimal类型的字段