grails - 通过Grails具有可选页面深度/URL变量的URLMappings 3

标签 grails gradle groovy

我们正在使用Grails 3.0.11构建一个允许自定义页面创建的Web应用程序。页面可以选择包含选项卡,并且用户应该能够使用URL结构/page/tab直接链接到特定选项卡
到目前为止,/page没问题,但URL中包含选项卡ID不会映射到分配的 Controller 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的 Controller ,并且正确地映射了URL /page/tab

最佳答案

弄清楚了-Grails规范在创建动态URL时在变量名的末尾包括问号运算符

 ... "/$page/$tabid?"{ ...

是正确的映射。

关于grails - 通过Grails具有可选页面深度/URL变量的URLMappings 3,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44739677/

相关文章:

java - LDAP异常 : Invalid Credentials (49) Invalid Credentials with grails

android - 由于资源文件,Android Studio中的Android单元测试成功,但在Gradle中未成功

android - 我们可以在 Android Studio 中更改 gradle 插件版本吗

android - 如何在 Jacoco 报告生成中公开 "sourceDirectories"?

java - 在整个单词上创建子字符串

java - 从 Infinispan 缓存读取进入无限循环

oracle - 测试 Oracle to_date 函数

grails - Grails Spring安全性插件身份验证失败

grails - 如何检查instanceof [Ljava.lang.String?

gradle - Grails “war”调用未将额外的属性传递给Gradle