Там может быть чище способ сделать это, но я получил с отображением кода ошибки в контроллер и обработки логики есть:
class UrlMappings {
static mappings = {
"/$controller/$action?/$id?" { constraints {} }
"/"(view:"/index")
"403"(controller: "errors", action: "accessDenied")
"404"(controller: "errors", action: "notFound")
"405"(controller: "errors", action: "notAllowed")
"500"(view: '/error')
}
}
, а затем создать соответствующий контроллер (Grails-приложение /conf/controllers/ErrorsController.groovy):
import grails.util.Environment
class ErrorsController extends AbstractController {
def accessDenied = {}
def notFound = {}
def notAllowed = {}
def serverError = {
if (Environment.current == Environment.DEVELOPMENT) {
render view: '/error'
}
else {
render view: '/errorProd'
}
}
}
Вам нужно создать соответствующие GSPS в Grails-приложение/просмотров/ошибок (accessDenied.gsp, notFound.gsp и т.д.), а также новый Grails-приложение/просмотров/errorProd.gsp. Путем маршрутизации к методу контроллера для всех кодов ошибок вы упростите добавление логики другим обработчикам кода ошибки в будущем.
Thx. Я попробую и обновить эту тему. Невозможно ли использовать условие if только для отображения «500»? – fabien7474
Да. Выше приведен пример – tinny
Большое спасибо. Оно работает! – fabien7474