Grails后端和前端中相同域对象的不同视图

Grails后端和前端中相同域对象的不同视图,grails,plugins,views,local,gsp,Grails,Plugins,Views,Local,Gsp,我有两个grails项目(管理后端和前端),它们使用本地插件中相同的域类 我需要在前端和后端有不同的视图。例如,有一个域类事件。在每个项目中,我都使用GenerateView。然后修改生成的GSP。以list.gsp为例。在前端,我从视图和控制器中删除创建新事件的操作,在后端保留它们。这是因为在前端,用户应该只能看到事件列表,而在后端,管理员创建并修改前端中显示的内容。这是我得到的结构: 项目域 domain/grails-app/domain/myapp/Event.groovy 项目前端

我有两个grails项目(管理后端和前端),它们使用本地插件中相同的域类

我需要在前端和后端有不同的视图。例如,有一个域类事件。在每个项目中,我都使用GenerateView。然后修改生成的GSP。以list.gsp为例。在前端,我从视图和控制器中删除创建新事件的操作,在后端保留它们。这是因为在前端,用户应该只能看到事件列表,而在后端,管理员创建并修改前端中显示的内容。这是我得到的结构:

项目域

  • domain/grails-app/domain/myapp/Event.groovy
项目前端(grails.plugin.location.domain'=“./domain”)

  • frontend/grails-app/controllers/myapp/frontend/EventController.groovy
  • 前端/grails应用程序/views/event/list.gsp(没有编辑/创建操作的链接)
项目后端(grails.plugin.location.domain'=“./domain”)

  • backend/grails-app/controllers/myapp/backend/EventController.groovy
  • 后端/grails应用程序/views/event/list.gsp(指向编辑/创建…)的链接
但当我使用run app运行前端应用程序并转到列表时,控制器被称为:

def listEvents(Integer max) {

    params.max = Math.min(max ?: 10, 100)
    [eventInstanceList: Event.list(params), eventInstanceTotal: Event.count()]

}
因此,后端/grails-app/views/event/list.gsp被呈现,而不是前端/grails-app/views/event/list.gsp

当我生成视图时,混乱已经开始了。因此,当我在后端项目中为domain/grails-app/domain/myapp/Event.groovy生成视图时,一切都很好。视图在我的后端项目中创建,并按预期工作

然后我将ober移到前端项目,并为domain/grails-app/domain/myapp/Event.groovy生成视图。这次grails会告诉我已经有了视图,并询问是否要替换它们。如果我说是,它不会替换任何东西,而是在我的前端项目中创建视图。真奇怪

我发现有一个旧的bug报告与此相关,我创建了一个新的()

同时,我应该做些什么来解决这个问题?我可以重命名控制器的方法和视图,但我希望有更好的方法。奇怪的是,同名视图可能会覆盖单独项目中的视图。还是只有在使用run应用程序时才会发生类似的情况


我是Grails新手,所以可能错过了一些明显的东西,但这真的让我害怕,因为我可能会通过修改另一个项目来意外地暴露一个项目中的操作

我并不完全清楚您的设置,但我有一个初步想法:看看
render()
支持的
插件
参数:感谢您的回复,如果我的问题描述不够清楚,请原谅。谢谢你的提示。我的问题是,即使我只运行两个项目中的一个,例如前端,并且我在这个项目中定义了一个视图,这个视图也不会被使用。而是使用来自项目后端的视图。我甚至没有将后端定义为前端中的依赖项。