7

我有一个非常简单的函数,我定义如下:

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

但是,当我尝试编译它时,我收到一条警告消息并生成异常,其中指出:[mySimpleFunction] 操作接受类型为 [java.util.Map] 的参数,该参数尚未标记为 Validateable。

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

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

为了构建我的应用程序,我应该做些什么不同的事情?

先感谢您!

4

1 回答 1

21

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

如果在控制器类文件中定义了命令对象类,则它们会自动变为可验证的,并且如果它们在其他地方定义,则需要将它们注释为@Validateable.

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

private mySimpleFunction(Map myMap) {
   // Function logic here...
}
于 2013-03-12T01:16:06.973 回答