TLDR
如何在 resources.groovy
中连接 Controller ?
故事
我有两个 Controller ProviderAController
和 ProviderBController
谁都执行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/