Нужно ли делать что-то особенное для командных объектов, которые создаются в Grails? - PullRequest
1 голос
/ 25 сентября 2010

У меня есть объект команды в другом пакете от моего контроллера. Я импортирую это в контроллер. Я создаю и возвращаю экземпляр этой команды из действия create:

def create = {
    def reportCreateCommand = new ReportCreateCommand()
    reportCreateCommand.name = params.name
    reportCreateCommand.jrxmlFile = params.jrxmlFile
    return [cmd: reportCreateCommand]
}

Но закрытие действия сохранения не создает объект этой команды из свойств:

    def save = { ReportCreateCommand cmd ->
    if (cmd.validate()){
        def reportInstance = cmd.createReport()
        reportInstance.save()
        redirect(action:"show", id:reportInstance.id)
    } 
    else {
        render(view:"create", model:[cmd:cmd])
    }

}

Очевидно, что cmd является нулем в закрытии сохранения. Командный класс имеет два свойства name и jrxmlFile. Из того, что я знаю, Grails должен создать экземпляр объекта команды в методе save из params. Должен ли я сделать что-нибудь еще?

Ответы [ 2 ]

2 голосов
/ 25 сентября 2010

Я считаю, что звонить cmd.validate() не нужно, просто позвоните cmd.hasErrors(). Объект команды будет проверяться по умолчанию при создании объекта

0 голосов
/ 26 сентября 2010

Да, в объектах команд нет метода validate ().Просто вызовите hasErrors как предложено Aaron

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