我有一个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>
答案 0 :(得分:0)
您可以使用controller namespaces通过在相应插件的每个控制器中添加static namespace = 'ctrlPlugin1'
来实现此类目标。
实现这一目标的另一种方法是创建一个CrtlPluginXUrlMappings.groovy
,将相应的控制器映射到某个基本路径下,如下所示:
class CrtlPluginXUrlMappings {
"/crtlPluginX/customers" resources: "customer"
"/crtlPluginX/orders" resources: "order"
}