我正在尝试将错误消息从grails控制器传递给grails错误控制器,以便在HTTP响应中显示错误消息,但我不确定哪个参数在错误控制器中保存错误消息
URLMappings.groovy
所有500个错误都映射到ErrorsController
"500"(controller: "errors", action: "serverError")
GenericController
def {
try{
//do some work
}catch(Exception e){
response.sendError(500, e.getMessage())
}
}
ErrorsController
def serverError = {
render( how can I access the exception details here?? )
}
我需要在ErrorsController中访问异常,以便将其输出到HTTP响应。
答案 0 :(得分:8)
在控制器之间传递短信息消息的常用方法是将其放在闪存范围内。例如:
def myAction = {
try {
...
} catch (Exception e) {
flash.message = e.message
response.sendError(500)
}
}
在这种特殊情况下,为什么要捕获异常?如果让异常掉线,grails将自动生成服务器错误并调用“500”映射。在您的错误控制器中,该异常将以request.exception
。
答案 1 :(得分:0)
在 ErrorsController :
中def serverError() {
render request.getAttribute('javax.servlet.error.message')
}
从e.getMessage()
呈现消息。