Grails 如何禁用某些操作的默认URL映射
我使用的是Grails版本3.1.12 我想为操作禁用一些默认URL映射,以便手动管理它们。例如,给定控制器:Grails 如何禁用某些操作的默认URL映射,grails,groovy,grails-controller,grails-3.1,urlmappings.groovy,Grails,Groovy,Grails Controller,Grails 3.1,Urlmappings.groovy,我使用的是Grails版本3.1.12 我想为操作禁用一些默认URL映射,以便手动管理它们。例如,给定控制器: class MyController { myAction() { render('Hello') } } 默认情况下,此操作映射到my/myAction,但是我想禁用此映射,并使用类似于UrlMappings.groovy中定义的自定义映射: static mappings { "/$controller/$action?/$id?(.
class MyController {
myAction() {
render('Hello')
}
}
默认情况下,此操作映射到my/myAction
,但是我想禁用此映射,并使用类似于UrlMappings.groovy中定义的自定义映射:
static mappings {
"/$controller/$action?/$id?(.$format)?"{
constraints {
// apply constraints here
}
}
'/myCustomAction'(controller: 'my', action: 'myAction')
}
static excludes = ['/my/myAction']
/$controller/$action…
映射在第一次创建Grails项目时默认提供,并提供我仍然希望用于某些其他操作的默认约定,但是我想排除myAction
的默认映射。我已尝试在UrlMappings.groovy中使用排除设置:
static mappings {
"/$controller/$action?/$id?(.$format)?"{
constraints {
// apply constraints here
}
}
'/myCustomAction'(controller: 'my', action: 'myAction')
}
static excludes = ['/my/myAction']
但是,端点my/myAction
会继续响应默认映射
如何实现所需的行为?路由my/myAction
由默认的/$controller/$action
映射生成。因此,您需要编辑该映射的“约束”部分,以便排除控制器,类似的操作应该会起作用(albiet some what sugger):
您的控制器如何映射到my/myAction
?是否应该是myController/myAction
?@DegenSharew Grails中的约定是controllerName/actionName
,其中名称不包含类名的“Controller”部分。看见