grails - 在 Grails 中连接 Controller

标签 grails grails-2.0

TLDR
如何在 resources.groovy 中连接 Controller ?
故事
我有两个 Controller ProviderAControllerProviderBController谁都执行ProviderControllerContract界面。

interface ProviderControllerContract {
  abstract def actionX()
  abstract def actionY()
}

  
class ProviderAController implements ProviderControllerContract {
  @Override
  def actionX() { ... }

  @Override
  def actionY() { ... }
}


class ProviderBController implements ProviderControllerContract {
  @Override
  def actionX() { ... }
 
  @Override
  def actionY() { ... }
}
根据外部决策,我的 Grails 应用程序应该
一次只使用一个 Controller (例如重定向到他们的
其他 Controller 或 View 中的操作)。
SomeController {
 
  def someAction() {
    // ...
    redirect(controller: 'providerController', action: 'actionX')
  }

}
或者
<g:form action="${g.createLink(controller: 'providerController',
    action: 'actionX')">
  ...
</g:form>
为了完成这项工作,我想我应该添加对此的引用providerController bean 入resources.groovy并将其连接到
具体实现,例如ProviderAController :
// resources.groovy
beans = {

  providerController(ProviderAController)

}

// UrlMappings.groovy
...
'/foo/bar/x'(controller: 'providerController', action: 'actionX')
...
但是,正如您可能已经猜到的那样,此设置没有按预期工作。
我怀疑我遗漏了一些琐碎的事情或误解了整体
首先是概念。我将不胜感激任何帮助/提示。
原帖于 Grails dev mailing list ,但是现在我再想一想,似乎我应该在 Grails 用户列表上发布这个:-)

最佳答案

这个我没试过,但我见过这个post这也适用于 Controller 。

在 resources.groovy 中试试这个:

beans = {
    springConfig.addAlias 'providerController', 'providerAController'
}

关于grails - 在 Grails 中连接 Controller ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30433300/

相关文章:

jquery - Grails:标签 [remotelink] 不存在。找不到 namespace 的标记库:g

grails - 拦截 Grails 中的所有自定义类

grails - Grails 2.4.4-将i18n设置为引用与/grails-app/i18n不同的目录

grails - Grails-将配置值用于计划作业中的cron表达式

grails - 如何使用Grails WebXmlConfig插件将属性添加到WEB.XML文件?

mysql - 如何在 Grails 应用程序中使用 AngularJs 以及 MySql 数据库

grails - 在Grails中实现 self 引用的一对多关系的最佳方法是什么?

caching - Grails 2.4.5在内存中缓存静态资源

Grails:不正确的整数值:第 1 行的列 '¬í' 的 'scenarioId'

grails - 如何在 Grails 应用程序中正确包含 JS 库?