如何为Grails插件定义网址范围

时间:2015-06-11 15:49:04

标签: grails

我有一个Grails应用程序,应该由多个自己实现的Grails插件扩展。我像其他插件一样在 BuildConfig.groovy 中导入它们。

每个插件的Controller可以在根URL下调用:

http://localhost/application/<ctrlPlugin1>
http://localhost/application/<ctrlPlugin1>/<endpoint1>
http://localhost/application/<ctrlPlugin2>

此时plugin1中的控制器名称必须与plugin2中的控制器名称不同。

如何定义url范围,以便插件的所有端点都在特殊的url路径下,并且插件中的控制器名称可以相等?

http://localhost/application/<plugin1>/<ctrlPlugin1>
http://localhost/application/<plugin1>/<ctrlPlugin1>/<endpoint1>
http://localhost/application/<plugin2>/<ctrlPlugin2>

1 个答案:

答案 0 :(得分:0)

您可以使用controller namespaces通过在相应插件的每个控制器中添加static namespace = 'ctrlPlugin1'来实现此类目标。

实现这一目标的另一种方法是创建一个CrtlPluginXUrlMappings.groovy,将相应的控制器映射到某个基本路径下,如下所示:

class CrtlPluginXUrlMappings {
  "/crtlPluginX/customers" resources: "customer"
  "/crtlPluginX/orders" resources: "order"
}