这就是我想要做的。

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

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

所有域类都映射到数据库

在创建/编辑过程中,Form2将重定向到PCController和随后的显示/编辑页面,因为创建的对象是PC类型,它会自动连接到该 Controller 。

<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

我如何使这种情况有效地起作用?

最佳答案

此类问题的答案很简单,您可以选择以下几种方法:

  • 完全不声明 Controller 。然后,这将由当前操作来执行所需的操作。


  • 然后将以显示该 View 的 Action 来进行显示。
  • 与选项1有点类似,但还有其他用途:

  • 声明为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的位置等等更加有用。

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

    10-06 16:16