最近,我正在尝试将我的应用程序从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的解决方案很接近,但是行不通,因为:
一个解决方案可能看起来像这样:
"/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/