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...
}