我有一个非常简单的功能,我定义如下:
def mySimpleFunction(Map myMap) {
// Function logic here...
}
然而,当我尝试编译它时,我收到一条警告消息并构建异常,该异常表示:[mySimpleFunction]动作接受[java.util.Map]类型的参数,该参数未标记为Validateable。 / p>
如何将此功能标记为可验证?我导入了 org.codehaus.groovy.grails.validation.Validateable
并将我的课程标记为@Validateable。
为了让我的应用程序构建,我应该做些什么?
提前谢谢!
答案 0 :(得分:21)
如果是帮助方法,请将其设为私有。在Grails 2.0+中,公共控制器方法被假定为动作,并且假定参数是可绑定的。这意味着它们需要是数字类型,布尔值,字符串等,或命令对象类。
如果在控制器类文件中定义了命令对象类,则它们会自动生效,如果它们在其他地方定义,则需要注释为@Validateable
。
由于这是一个辅助方法而不是一个动作,只需将其设为私有(特别是因为无论如何都无法从另一个类调用它):
private mySimpleFunction(Map myMap) {
// Function logic here...
}