【发布时间】:2017-07-05 13:18:21
【问题描述】:
我使用的是 Grails 3.1.12 版。
我想为操作禁用一些默认 URL 映射,以便手动管理它们。例如,给定控制器:
class MyController {
myAction() {
render('Hello')
}
}
默认情况下,此操作映射到 my/myAction,但是我想禁用此映射并使用像 UrlMappings.groovy 中定义的这样的自定义映射:
static mappings {
"/$controller/$action?/$id?(.$format)?"{
constraints {
// apply constraints here
}
}
'/myCustomAction'(controller: 'my', action: 'myAction')
}
/$controller/$action... 映射在首次创建 Grails 项目时默认提供,并提供了我仍然希望用于其他一些操作的默认约定,但是我想排除myAction 的默认映射。我曾尝试在 UrlMappings.groovy 中使用excludes 设置:
static excludes = ['/my/myAction']
但是,端点my/myAction 一直响应默认映射。
我怎样才能达到预期的行为?
【问题讨论】:
-
您的控制器如何映射到
my/myAction?不应该是myController/myAction吗? -
@DegenSharew Grails 中的约定是
controllerName/actionName,其中名称不包含类名的“Controller”部分。见docs.grails.org/3.1.12/guide/single.html#urlmappings
标签: grails groovy grails-controller grails-3.1 urlmappings.groovy