Grails:更改控制器名称的URL映射

Grails:更改控制器名称的URL映射,grails,Grails,这必须是URLMappings.groovy中的一个简单配置,但我一直得到一个404 基本上,我想更改控制器的名称。例如,我们有控制器名Content\u pdfs\u data\u etcController.groovy,就像URL一样糟糕,我试过了 static mappings = { "/mdata/$action?"(controller: "content_pdfs_data_etc", action: 'index') "/$controller/$action

这必须是URLMappings.groovy中的一个简单配置,但我一直得到一个404

基本上,我想更改控制器的名称。例如,我们有控制器名Content\u pdfs\u data\u etcController.groovy,就像URL一样糟糕,我试过了

static mappings = {
    "/mdata/$action?"(controller: "content_pdfs_data_etc", action: 'index')

    "/$controller/$action?/$id?"{
        constraints {
            // apply constraints here
        }
    }
    "/"(view:"/index")
    "/"(controller:"home")
    "500"(view:'/error')
}
控制器中的所有操作也应重定向,例如:

/mdata/show->content\u pdfs\u data\u etc/show

/mdata/update->content\u pdsf\u data\u etc/update


谢谢。

尝试删除硬编码的操作,这将允许$action变量执行其映射魔法:

"/mdata/$action?"(controller: "content_pdfs_data_etc")

尝试删除硬编码的操作,这将允许$action变量执行其映射魔法:

"/mdata/$action?"(controller: "content_pdfs_data_etc")

谢谢你的回答,安德鲁。事实上,我发现用默认值替换映射顺序解决了这个问题。我的结局是:

"/$controller/$action?/$id?"{
    constraints {
    // apply constraints here
    }
}
"/mdata/$action?/$id?" (controller: "content_pdfs_data_etc")

谢谢你的回答,安德鲁。事实上,我发现用默认值替换映射顺序解决了这个问题。我的结局是:

"/$controller/$action?/$id?"{
    constraints {
    // apply constraints here
    }
}
"/mdata/$action?/$id?" (controller: "content_pdfs_data_etc")

顺便问一下,将控制器名称保留为Content\u pdfs\u data\u etccontroller的原因是什么?是另一位开发人员命名了控制器,客户端回来要求更改URL。我知道我可以重命名控制器/视图目录。是的,如果你对代码有控制权,最好重命名控制器。顺便问一下,为什么要将控制器名称保留为Content\u pdfs\u data\u etccontroller是另一个开发人员命名了控制器,客户端回来要求更改URL。我知道我可以重命名controller/view目录。是的,如果你能控制代码,重命名controller会更好。