【发布时间】:2017-06-24 18:30:13
【问题描述】:
我们正在使用 Grails 3.0.11 构建一个允许自定义页面创建的 Web 应用程序。页面可以选择包含选项卡,用户应该能够使用 URL 结构 /page/tab 直接链接到特定选项卡
到目前为止,/page 没有问题,但在 URL 中包含选项卡 ID 不会映射到分配的控制器 public(也不是操作)并且会引发 404。
class UrlMappings {
static excludes = ["/images/*","/assets/*","/layouts/*","/js/*", "/css/*"]
static mappings = {
/$page?/$tabid{
controller= 'public'
action='findPage'
constraints{
page(matches:/[a-zA-Z]+/)
}
}
"/"(controller:'public',action:'findPage')
"/admin/**"(controller:'admin')
"500"(view:'/error')
"404"(view:'/notFound')
}
}
编译器没有抛出其他错误。
尝试:
/$page/?$tabid ==> /page/tabid 没问题,/page 更改为 'pag' 截断并删除最后一个字符
/$page?/?$tabid ==> 同上...
/$page/$tabid ==>(预期)不会映射到 URL /page 的控制器,并正确映射到 URL /page/tab
【问题讨论】: