Grails在运行时添加控制器操作

时间:2013-10-31 20:48:42

标签: grails groovy

我需要在运行时添加控制器操作。 在插件中,我使用doWithDynamicMethods添加动态方法,但我不能作为动作调用。

我尝试使用mixin但它不起作用。 @ grails.web.Mixin有一个错误,对我来说没用。而且我不确定我是否可以将其称为行动。

我明白我需要将@Action注释添加到我在doWithDynamicMethods中动态创建的方法中。

我应该使用AstTransformation吗?或者我想念一些东西

1 个答案:

答案 0 :(得分:1)

  

我需要在运行时添加一个控制器动作。

不,你没有。您还有其他一些问题,并且您认为可以通过在运行时添加控制器操作来解决它。但是,正如您所了解的那样,在运行时添加控制器操作非常困难。 您应该以其他方式解决您的问题

我不知道你的问题是什么,所以我不能太具体。但这是一个非常有用的技巧。在UrlMappings.groovy中,您可以执行此操作:

"awesome/$stuff"(controller: 'awesome', action: 'doStuff')

然后在AwesomeController.groovy:

public doStuff(String stuff) {
  // whatever arbitrary dynamic dispatch logic you want goes here
}

希望有所帮助。