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

标签 grails

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

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

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

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

并将我的类(class)标记为 @Validateable 。

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

提前谢谢您!

最佳答案

如果它是辅助方法,请将其设为私有(private)。在 Grails 2.0+ 中,公共(public) Controller 方法被假定为操作,参数被假定为可绑定(bind)。这意味着它们需要是数字类型、 bool 值、字符串等,或者是命令对象类。

如果命令对象类在 Controller 类文件中定义,则它们会自动变得可验证;如果在其他地方定义,则需要将其注释为 @Validateable

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

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

关于grails - Groovy/Grails 使用映射作为函数的参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15350684/

相关文章:

grails - GSP替代布局

tomcat - 具有使用多个数据源的 spring 安全核心的 Grails 3.1.8

Grails 启动很慢

grails - 按照约定引用 GGTS 中的外部依赖项

grails - Validate()返回false,但已保存在数据库中

grails - 无法访问 Grails 3 中的 web-app 文件夹文件

grails - 测试使用 @CurrentTenant 的 Grails Controller

java - grails 4.x : Creating a WAR with a custom env always runs under development

facebook - Grails Facebook Spring Security返回null

grails - 如何在Grails 3应用程序中在运行时将图像保存在资源文件夹中?