如何禁用某些操作的默认 URL 映射
How to disable default URL mappings for some actions
我使用的是 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')
}
首次创建 Grails 项目时,/$controller/$action...
映射默认提供,并提供默认约定,我仍然需要一些其他操作,但是我想排除 [=16] 的默认映射=].我尝试在 UrlMappings.groovy:
中使用 excludes
设置
static excludes = ['/my/myAction']
但是,端点 my/myAction
一直响应默认映射。
我怎样才能达到预期的效果?
路由 my/myAction
由默认 /$controller/$action
映射生成。因此,您将需要编辑该映射的约束部分以排除您的控制器,这样的事情应该有效(尽管有些丑陋):
"/$controller/$action?/$id?(.$format)?"{
constraints {
controller(validator: { return it != 'my'})
}
}
我使用的是 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')
}
首次创建 Grails 项目时,/$controller/$action...
映射默认提供,并提供默认约定,我仍然需要一些其他操作,但是我想排除 [=16] 的默认映射=].我尝试在 UrlMappings.groovy:
excludes
设置
static excludes = ['/my/myAction']
但是,端点 my/myAction
一直响应默认映射。
我怎样才能达到预期的效果?
路由 my/myAction
由默认 /$controller/$action
映射生成。因此,您将需要编辑该映射的约束部分以排除您的控制器,这样的事情应该有效(尽管有些丑陋):
"/$controller/$action?/$id?(.$format)?"{
constraints {
controller(validator: { return it != 'my'})
}
}