Контроллер Grails, управление объектами Command

В действиях контроллера Grails, для валидации, мы используем командные объекты. Проблема в том, что количество классов CommandObject взорвалось.

 def publish = { PublishCommand command ->
        if (command.hasErrors()) {
            return redirect(action: 'errors',params:params)
        }
        //rest of the code
  }
 ......

Class PublishCommand {
   long personId
   String name
   static constraints = {
        personId(nullable: false, blank: false)
        name(nullable: false, blank: false)

   }
}

Класс PublishCommand существует только для этой цели привязки и проверки данных. Количество таких классов взорвалось, по 1 создано для каждого действия приложения. Вопрос, есть ли способ, которым я могу иметь эту PublishCommand как innerClass? Или другие способы, где мне не нужно создавать так много классов?

1 ответ

Решение

Довольно распространенная практика - помещать классы объектов команды в тот же файл.groovy, что и контроллер (после класса контроллера). Это поможет сократить количество файлов, которыми вы должны управлять. В противном случае вы следуете передовой практике (из того, что вы описали).

Другие вопросы по тегам