Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/74.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Groovy/Grails使用映射作为函数的参数_Grails - Fatal编程技术网

Groovy/Grails使用映射作为函数的参数

Groovy/Grails使用映射作为函数的参数,grails,Grails,我有一个非常简单的函数,我定义如下: def mySimpleFunction(Map myMap) { // Function logic here... } 然而,当我试图编译它时,我得到一条警告消息和构建异常,它说,[mySimpleFunction]操作接受一个类型为[java.util.Map]的参数,该参数没有标记为validatable 如何将此函数标记为可验证?我导入了org.codehaus.groovy.grails.validation.Validateabl

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

 def mySimpleFunction(Map myMap) {
   // Function logic here...
  }
然而,当我试图编译它时,我得到一条警告消息和构建异常,它说,[mySimpleFunction]操作接受一个类型为[java.util.Map]的参数,该参数没有标记为validatable

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

并将我的类标记为@validatable

为了让我的应用程序得以构建,我应该采取哪些不同的做法


提前谢谢你

如果它是助手方法,则将其设置为私有。在Grails2.0+中,公共控制器方法被假定为动作,参数被假定为可绑定的。这意味着它们必须是数字类型、布尔值、字符串等,或者是命令对象类

如果命令对象类在控制器类文件中定义,则会自动使其可验证;如果命令对象类在其他地方定义,则需要将其注释为
@validatable

因为这是一个助手方法而不是一个操作,所以只需将其设置为私有(特别是因为它无论如何都不能从另一个类调用):


这个函数在哪里?控制器、服务等?将该方法标记为@validable。除了grails在控制器中所做的magic map/params绑定之外,我不确定为什么会出现这种情况。谢谢Burt!谢谢。期待着你的新书上市后也能阅读。
private mySimpleFunction(Map myMap) {
   // Function logic here...
}