gpt4 book ai didi

grails - Grails中的URL映射前缀

转载 作者:行者123 更新时间:2023-12-04 18:16:11 26 4
gpt4 key购买 nike

最近,我正在尝试将我的应用程序从CakePHP迁移到Grails。到目前为止,一切都很顺利,我可以使用CakePHP进行所有操作,而用Grails编写的代码却少得多。但是,我有一个问题:

在CakePHP中,有一个URL前缀功能,使您可以给某个操作url加上前缀,例如,如果我的 Controller 中包含以下操作:

PostController
admin_add
admin_edit
admin_delete



我可以简单地从URL进行访问:

mysite/admin/post/add
mysite/admin/post/edit/1
mysite/admin/post/delete/2



代替:

mysite/post/admin_add
mysite/post/admin_edit/1
mysite/post/admin_delete/2



无论如何,Grails中是否有这样做的方法,或者至少有其他替代方法?

最佳答案

在这种特殊情况下,Grails URL映射文档无法为您提供帮助(Amra,下次您自己尝试并仅在有帮助的情况下发布答案)。 Daniel的解决方案很接近,但是行不通,因为:

  • 动态创建时,操作部分必须处于闭合状态
  • 可以通过params对象
  • 访问除“controller”,“action”和“id”之外的所有命名参数

    一个解决方案可能看起来像这样:
        "/admin/$controller/$adminAction?/$param?"{
    action = { "admin_${params.adminAction}" }
    }

    关键是不要将参数命名为“action”,因为它似乎直接映射到一个 Action ,并且不能被覆盖。

    我还尝试了带有通用前缀的动态解决方案,它似乎也可以正常工作:
        "/$prefix/$controller/$adminAction?/$param?"{
    action = { "${params.prefix}_${params.adminAction}" }
    }

    关于grails - Grails中的URL映射前缀,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3058809/

    26 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com