Как сохранить дату из списка параметров в граалях? - PullRequest
0 голосов
/ 22 февраля 2012

Я пытался создать сервис (код ниже).Он получает список параметров, переданных от контроллера, итерирует по ним и сохраняет его.Теперь я продолжаю получать эту ошибку:

    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)
    }



}

Бьюсь об заклад, ошибка происходит от даты вещь.Я попробовал несколько решений, найденных здесь , но безрезультатно.Также попытался сделать код ниже, но все еще получает ту же ошибку ...

employmentHistory.endDate = new Date(params.endDate[i])
employmentHistory.startDate = new Date(params.startDate[i])

Еще одна попытка, но ошибка:

    employmentHistory.endDate = params.endDate[i]
    employmentHistory.startDate = params.startDate[i]

Любые предложения о том, как это сделатьэто правильно?Я не очень знаком с заводной.:( Любая помощь будет оценена.

1 Ответ

0 голосов
/ 22 февраля 2012

Похоже, вы пытаетесь вызвать этот метод службы как статический метод (например, EmploymentHistoryService.saveEmploymentHistory()), но на самом деле нужен метод экземпляра. См. Методы класса

Чтобы сделать это, вам нужно определить служебное поле (оно будет подключено автоматически через Grails) в заголовке вашего контроллера:

class EmploymentHistoryController {

   def employmentHistoryService

}

и затем назовите это как:

def save() {

    employmentHistoryService.saveEmploymentHistory(params)

}

Или вы можете также сделать свой метод обслуживания как static, но в этом случае вам действительно не нужен сервис, это может быть любой класс.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...