【问题标题】:How to globally handle HTTP errors in Grails (status codes 4xx/5xx)?如何全局处理 Grails 中的 HTTP 错误(状态码 4xx/5xx)?
【发布时间】:2011-05-21 00:52:17
【问题描述】:

Grails 有没有办法在将所有可能的 HTTP 错误发送到客户端浏览器之前捕获它们,以便能够处理发送到客户端的内容?我的意思是所有 4xx 和 5xx HTTP 状态代码,而不仅仅是其他建议的 403、404 和 500。

我想做的是首先捕获所有 HTTP 错误,而不必逐个指定它们,然后在第二步中,我将过滤(例如在错误控制器中)特定的错误代码我想处理(例如 400),但至少我不会指定的那些会呈现给我定义的通用错误模板。

如果这不能完成(或不应该完成),应该真正检查和处理哪些 HTTP 错误代码?我至少可以看到这些代码在某个时候发生:400、401、403、404、405、500、501、503。另外,应该如何使用 HTTP 响应代码映射来处理它们?

谢谢!

【问题讨论】:

    标签: grails error-handling http-status-codes


    【解决方案1】:

    实际上并没有尝试过,但也许数字限制可能有效?

    "$errorCode" {
         controller = "errors"
         action = "displayError"
         constraints {
              errorCode(matches:/\d{3}/)
         }
    }
    

    【讨论】:

    • 嘿 Aaron,刚刚尝试了您的建议,但结果表明 Grails 在尝试运行应用程序时失败了。以下内容正在写入日志:2010-12-06 11:10:23,984 [main] ERROR context.ContextLoader - 上下文初始化失败 org.springframework.beans.factory.BeanCreationException:创建名称为“org.codehaus”的 bean 时出错。 groovy.grails.plugins.web.taglib.ApplicationTagLib':bean 初始化失败
    猜你喜欢
    • 1970-01-01
    • 2012-10-02
    • 1970-01-01
    • 2017-06-28
    • 2012-06-26
    • 2011-10-02
    • 1970-01-01
    • 2011-11-16
    • 2016-06-11
    相关资源
    最近更新 更多