Grails 将值传递给其他控制器函数时出错

Grails 将值传递给其他控制器函数时出错,grails,groovy,Grails,Groovy,我的控制器功能如下: def saveData(String name,String message) { println "HI WORLD" println "NAME IS "+ name println "NAME IS "+ message } 从另一个控制器函数,我将值传递给上述控制器函数: def submitMessage() { def mes =new Message() mes.saveData("HI","JJ")

我的控制器功能如下:

  def saveData(String name,String message) { 
     println "HI WORLD"
     println "NAME IS "+ name
     println "NAME IS "+ message
  }
从另一个控制器函数,我将值传递给上述控制器函数:

def submitMessage() {
    def mes =new Message()
    mes.saveData("HI","JJ")    
}
我最终出现以下错误,如何解决它

Message: No signature of method: myPro.Message.saveData() is applicable for argument types: (java.lang.String, java.lang.String) values: [HI, JJ]

您的主题表明您正在调用控制器上的方法,但您的代码和错误消息表明您正在调用非控制器的
myPro.message
实例上的方法。您应该验证在您的
myPro.Message
类中是否存在一个
saveData
方法,该方法接受2个
String
参数。

btw…您不应该直接调用控制器操作方法。您描述中的代码没有这样做,但问题标题表明您可能已经考虑到了这一点。否则,我如何在数据库中保存记录。我的模型仅包含
名称
消息
。“我还可以如何在数据库中保存记录。”。我不明白这个问题。直接调用控制器操作方法对于与数据库交互不是必需的。您可以在第一个控制器操作中进行数据库调用,或者让该操作调用执行DB工作的服务方法。一个控制器操作方法直接调用另一个控制器操作方法从来没有一个好的理由。