Grails:如何为2个不同的控制器使用相同的域类

时间:2017-10-16 17:17:48

标签: hibernate grails groovy gsp

这就是我试图做的事情。

Form1 - > PCController - > PC - >数据库

Form2 - > GPCController - > PC - >数据库

所有域类都映射到DB

在创建/编辑期间,Form2将被重定向到PCController和随后的显示/编辑页面,因为创建的对象是PC类型,它自动连接到该控制器。

<g:link action="show" controller="gPC" resource="${pCInstance}" params="[noheader: params.noheader]"><g:message code="default.button.show.label" default="Cancel" /></g:link>

我尝试将pCInstance切换为gPCInstance。控件转到GPCController,但gPCInstance不是对象实例,因此当它到达GPCController时返回null

如何使此方案有效运作?

1 个答案:

答案 0 :(得分:1)

这样的事情的答案是微不足道的,你有几个选择:

  1. 根本不要声明控制器。然后,这将使其在当前行动中执行所需的操作。

    &lt; g:link action =“show”resource =“$ {pCInstance}”params =“[noheader:params.noheader]”&gt;

  2. 然后,这将执行show动作呈现该视图。

    1. 有点类似于选项1但有其他用途:
    2. 将其声明为controllerName

      <g:link action="show" controller="${controllerName}" resource="${pCInstance}" params="[noheader: params.noheader]"><g:message code="default.button.show.label" default="Cancel" /></g:link>
      

      后者对于找出你所在的位置if actionName == currentAction等等更有用....

      无论如何要小心使用它,但这应该指导你如何解决它,通常这是围绕重复菜单选项等动态模板的方法