2010-12-06 63 views
6

有没有办法让Grails在发送到客户端浏览器之前捕获所有可能的HTTP错误,以便能够处理发送给客户端的内容?我的意思是所有的4xx和5xx HTTP状态码,不仅像其他人所建议的403,404和500。如何全局处理Grails中的HTTP错误(状态码4xx/5xx)?

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

如果无法完成(或不应该完成),应该检查并处理哪些HTTP错误代码?我至少可以看到这些代码在某些时候发生了:400,401,403,404,405,500,501,503。还有,它们应该如何处理,使用HTTP响应代码映射?

谢谢!

回答

2

还没有真正尝试过,但也许数字约束可能工作?

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

嘿亚伦,刚试过你的建议,但事实证明,当试图运行应用程序时,Grails失败。以下是正在写入日志: 2010-12-06 11:10:23,984 [main] ERROR context.ContextLoader - 上下文初始化失败 org.springframework.beans.factory.BeanCreationException:创建名为org的bean时出错。 codehaus.groovy.grails.plugins.web.taglib.ApplicationTagLib':bean初始化失败 – djule5 2010-12-06 16:17:41