404的Grails URLMappings无法正常工作

时间:2011-02-07 20:08:48

标签: grails

我在grails 1.3.6中处理404 HTTP响应有一个奇怪的问题(1.3.5中的错误行为相同)。它有时可以工作,但大部分时间都没有。我认为这是一个grails bug,但没有发现grails'jira中的任何错误.. 每当我请求错误的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+/)
            }
        }
    }
}

有没有人知道如何解决它?: - )

最佳, 刁

2 个答案:

答案 0 :(得分:1)

我认为问题是你使用大括号{}而不是使用括号()。这是应该如何列出使用customError控制器的示例。

静态映射= {

“404”(控制器:“customError”,动作:“index”)

“500”(控制器:“customError”,动作:“index”)

...

}

有关详细信息,请参阅Grails文档中的[6.4.4] [1]。

[1]:http://grails.org/doc/latest/guide/6.%20The%20Web%20Layer.html#6.4.4映射到响应代码

答案 1 :(得分:0)

没有空间就试试吧。旧版本的Grails中存在一个错误,其中一个空格会导致错误映射由于某些正则表达式中的某个错误而无法获取错误:

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