如何嵌套插件网址?

时间:2012-07-25 19:42:32

标签: grails grails-plugin grails-2.0

我想创建一个Grails项目的“Shell”,它在插件中托管功能,URL由插件名称隔离。

因此,Shell项目中使用的 Blog 插件的网址可能如下所示:/shell/blog/viewBlogPost

但我实际看到的是,所有插件的控制器都表现得好像它们是shell项目本身的一部分:/shell/viewBlogPost

有没有办法声明Blog插件的控制器只能在URL中的/blog路径下访问?

3 个答案:

答案 0 :(得分:1)

似乎Grails插件无法执行此操作。问题是它们缺乏封装和可组合性,导致工件冲突:

  • 插件中的URL路由只是简单地合并在一起,不能嵌套
  • 控制器未命名空间
  • 服务未命名空间

我打开了一个问题:GRAILS-9300

Grails团队有tentative plans通过使用插件名称作为工件的命名空间来解决这个问题。

答案 1 :(得分:0)

是的,你的插件可以注册URL映射,就像你的“shell”应用程序的其余部分一样。

答案 2 :(得分:0)

您可以通过在插件中创建名称以UrlMappings结尾的文件(例如BlogPluginUrlMappings.groovy)在插件中声明UrlMappings,这些文件将合并到主应用程序的UrlMappings中。您可以设置以/blog/开头的映射来路由到插件的控制器。