2014-07-22 2 views
0

내 컨트롤러의 기능은 다음과 같다 :오류 동안

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 
    } 

다음과 같은 오류가 발생하면 어떻게 해결할 수 있습니까?

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

답변

1

당신의 주제는 당신이 컨트롤러에서 메소드를 호출되지만 코드 및 오류 메시지가이 컨트롤러가 아닌 myPro.Message의 인스턴스의 메소드를 호출하는 것을 나타냅니다 제안합니다. 2 String 인수를 허용하는 myPro.Message 클래스에 saveData 메서드가 있는지 확인해야합니다.

+0

btw ... 컨트롤러 액션 메소드를 직접 호출해서는 안됩니다. 귀하의 설명에있는 코드는 그렇게하지 않지만 질문 제목은 당신이 염두에 두었을 수도 있음을 암시합니다. –

+0

그 밖의 다른 방법으로 DB에 레코드를 저장할 수 있습니다. 내 모델에는'name'과'message' 만 있습니다. – Illep

+0

"DB에 레코드를 저장하는 방법은?" 나는 그 질문을 이해하지 못한다. 컨트롤러 조치 메소드를 직접 호출하면 데이터베이스와 상호 작용할 필요가 없습니다. 첫 번째 컨트롤러 작업에서 데이터베이스 호출을 만들거나 DB 작업을 수행하는 서비스 메서드를 호출 할 수 있습니다. 컨트롤러 액션 메서드가 다른 컨트롤러 액션 메서드를 직접 호출하는 좋은 이유는 없습니다. –