Grails URLMappings для 404 не работает должным образом - PullRequest
0 голосов
/ 07 февраля 2011

У меня странная проблема с обработкой ответа HTTP 404 в Grails 1.3.6 (такое же неправильное поведение было в 1.3.5). Иногда это работает, но в большинстве случаев это не так. Я думаю, что это ошибка Grails, но я не нашел ошибку в Jira Grails .. всякий раз, когда я запрашиваю неверный URL, я получаю страницу Tomcat 404 по умолчанию. Моя Конфигурация / UrlMappings.groovy выглядит так:

class UrlMappings {

    static mappings = {
        "404" {
            controller = 'customError'
            action = 'index'
            code = 404
        }
        "500" {
            controller = 'customError'
            action = 'index'
            code = 500
        }

        "/"(controller: "home", action: "index")
        "/$controller/$action?/$id?"{
            constraints {
            // id has to be a number
                id(matches: /\d+/)
            }
        }
    }
}

Кто-нибудь знает, как ее решить?: -)

Лучший, Mateo

Ответы [ 2 ]

1 голос
/ 07 февраля 2011

Я думаю, проблема в том, что вы используете фигурные скобки {} вместо использования скобок ().Вот как это должно быть указано для вашего примера использования контроллера customError.

static mappings = {

"404" (controller: "customError", action: "index")

"500" (контроллер: "customError", действие: "index")

...

}

См. [6.4.4 вДокументация Grails] [1] для получения дополнительной информации.

[1]: http://grails.org/doc/latest/guide/6.%20The%20Web%20Layer.html#6.4.4 Отображение в коды ответов

0 голосов
/ 08 октября 2012

Попробуй без пробела. В старых версиях Grails существовала ошибка, из-за которой пробел не позволял отображать ошибки из-за ошибки в каком-то регулярном выражении:

static mappings = {
    "404"{
          controller = 'customError'
           action = 'index'
        code = 404
    }
    "500"{
        controller = 'customError'
        action = 'index'
        code = 500
    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...