サービス(以下のコード)を作成しようとしました。コントローラーから渡されたパラメーターのリストを取得し、パラメーターを反復して保存します。今、私はこのエラーを取得しておいてください。ここgrailsのparamsのリストから日付を保存するにはどうすればいいですか?
Error 500: Executing action [save] of controller [controller.EmploymentHistoryController] caused exception: Runtime error executing action
Servlet: grails
URI: /hrapp/grails/employmentHistory/save.dispatch
Exception Message: No signature of method: static service.EmploymentHistoryService.saveEmploymentHistory() is applicable for argument types: (org.codehaus.groovy.grails.web.servlet.mvc.GrailsParameterMap) values: [[position:ksfdj, startDate:Wed Feb 22 00:00:00 PHT 2012, ...]] Possible solutions: saveEmploymentHistory(java.lang.Object)
Caused by: No signature of method: static service.EmploymentHistoryService.saveEmploymentHistory() is applicable for argument types: (org.codehaus.groovy.grails.web.servlet.mvc.GrailsParameterMap) values: [[position:ksfdj, startDate:Wed Feb 22 00:00:00 PHT 2012, ...]] Possible solutions: saveEmploymentHistory(java.lang.Object)
は私のコードです:
def saveEmploymentHistory(params){
params.company = [params.company].flatten()
params.position = [params.position].flatten()
params.responsibilities = [params.responsibilities].flatten()
params.startDate = [params.startDate].flatten()
params.endDate = [params.endDate].flatten()
params.employee = [params.employee].flatten()
params.company.eachWithIndex{ company, i ->
def employmentHistory = new EmploymentHistory()
employmentHistory.employee = params.employee[i]
employmentHistory.company = company
employmentHistory.position = params.position[i]
employmentHistory.responsibilities = params.responsibility[i]
def tempStartDate = "${params.startDate_year[i]}/${params.startDate_month[i]}/${params.startDate_day[i]}"
employmentHistory.startDate = new Date(tempStartDate)
def tempEndDate = "${params.endDate_year[i]}/${params.endDate_month[i]}/${params.endDate_day[i]}"
employmentHistory.endDate = new Date(tempEndDate)
employmentHistory.save(flush:true)
}
}
私はエラーが日付ブツから来て賭けます。私はいくつかの解決策を試みたhereしかし、役に立たなかった。また、以下のコードをやってみましたが、それでも同じエラーを取得します...
employmentHistory.endDate = new Date(params.endDate[i])
employmentHistory.startDate = new Date(params.startDate[i])
私が試したもう一つが、それでも失敗:適切にこれを行う方法について
employmentHistory.endDate = params.endDate[i]
employmentHistory.startDate = params.startDate[i]
任意の提案ですか?私はグルーヴィーにはあまり精通していません。 :( 任意の助けいただければ幸い。
コントローラからこの「saveEmploymentHistory」をどのように呼び出すのですか? –
これは私がそれを呼び出す方法です..EmploymentHistoryService.saveEmploymentHistory(params)上記のクラス名を追加するのを忘れました...しかしそれは問題ではありません。 –
だから、あなたは 'static'と呼んでいますが、' static'ではありません。私の答えを見てください。 –