【问题标题】:mapping a grails action to a parent controller将 Grails 操作映射到父控制器
【发布时间】:2011-10-04 20:12:20
【问题描述】:

我想将子类中的一些动作映射到他们的超类,但我无法弄清楚。下面的例子...

abstract class A {
    abstract def foo()

    def aAction1 = {
       // do something
       render(view: '/someView')
    }
    def aAction2 = { 
       SomeObject someObject ->
       // do something
       render(view: '/someView2')
    }
}

class B extents A {
    def foo() { return "Hello World" }

    # map to parent action    
    # works fine
    def jump = super.&aAction1
    # doesnt work ... Why? and can I make it work?
    def swim = { SomeObject someObject ->
       super.aAction2(someObject)
    }
}

关于这个有什么想法吗?谢谢。

【问题讨论】:

  • 怎么不工作?顺便说一句,除非您在子类中重新定义 aAction1/2,否则您不需要指定 super。您继承定义。
  • 我得到实例化异常。
  • 另外,如果我删除游泳并让它落入aAction2,我会得到一个异常java.lang.InstantiationException at sun.reflect.InstantiationExceptionConstructorAccessorImpl.newInstance(InstantiationExceptionConstructorAccessorImpl.java:30)
  • 所以事实证明它不起作用,因为参数略有不同。它似乎确实按预期工作。

标签: grails grails-controller


【解决方案1】:

事实证明它不起作用,因为参数略有不同。它似乎确实按预期工作。如果您对此有疑问,请确保任何继承类的参数都与父类完全相同。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-10-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多