脚手架控制器使用标准 taglib 调用生成所有 URL,这些调用对 URL 映射很敏感。因此,如果您拥有正确的 URL 映射,那么它应该可以正常工作。如果你有一个MyDomainController
你想要映射的,/admin
那么你需要类似的东西
class UrlMappings {
static mappings = {
"/$controller/$action?/$id?" {
constraints {
controller(validator:{
// make sure this mapping doesn't apply to the MyDomainController,
// so it will only be accessible via the protected /admin URL
return it != "myDomain"
})
}
}
// special rule for the MyDomainController
"/admin/myDomain/$action?/$id?"(controller:"myDomain")
}
}
您可以在 URL 映射上使用任何常见的 Grails 约束类型,因此您可以通过白名单进行限制
controller(inList:['foo', 'bar'])
或通过正则表达式
// exclude all controllers whose name starts "sec", e.g. secUser, secRole, ...
controller(matches:/(?!sec).*/)