Groovy / Grails使用map作为函数的参数

时间:2013-03-11 23:41:23

标签: grails

我有一个非常简单的功能,我定义如下:

 def mySimpleFunction(Map myMap) {
   // Function logic here...
  }

然而,当我尝试编译它时,我收到一条警告消息并构建异常,该异常表示:[mySimpleFunction]动作接受[java.util.Map]类型的参数,该参数未标记为Validateable。 / p>

如何将此功能标记为可验证?我导入了 org.codehaus.groovy.grails.validation.Validateable

并将我的课程标记为@Validateable。

为了让我的应用程序构建,我应该做些什么?

提前谢谢!

1 个答案:

答案 0 :(得分:21)

如果是帮助方法,请将其设为私有。在Grails 2.0+中,公共控制器方法被假定为动作,并且假定参数是可绑定的。这意味着它们需要是数字类型,布尔值,字符串等,或命令对象类。

如果在控制器类文件中定义了命令对象类,则它们会自动生效,如果它们在其他地方定义,则需要注释为@Validateable

由于这是一个辅助方法而不是一个动作,只需将其设为私有(特别是因为无论如何都无法从另一个类调用它):

private mySimpleFunction(Map myMap) {
   // Function logic here...
}