如何在resources.groovy
中连接控制器?
我有两个控制器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应用程序应该是 一次只使用一个控制器(例如重定向到他们的 其他控制器或视图中的操作。)
SomeController {
def someAction() {
// ...
redirect(controller: 'providerController', action: 'actionX')
}
}
OR
<g:form action="${g.createLink(controller: 'providerController',
action: 'actionX')">
...
</g:form>
为了使这项工作,我想我应该添加一个参考
providerController
中的resources.groovy
bean并将其连接到。{
具体实施,例如ProviderAController
:
// resources.groovy
beans = {
providerController(ProviderAController)
}
// UrlMappings.groovy
...
'/foo/bar/x'(controller: 'providerController', action: 'actionX')
...
但是,正如您可能已经猜到的那样,此设置无法按预期工作。 我怀疑我错过了一些微不足道的东西或者误解了整体 概念首先。我很感激任何帮助/提示。
最初发布在Grails dev mailing list,但是现在我再想一想,似乎我应该在Grails用户列表上发布这个: - )
答案 0 :(得分:0)
我没有试过这个,但我看到这个post也适用于控制器。
在resources.groovy中试试这个:
beans = {
springConfig.addAlias 'providerController', 'providerAController'
}