В объекте команды Grails 3 получить поле для заполнения списка доменов

Мне нужно сохранить список доменов, и для этого я использовал список в объекте команды в контроллере. Но когда я пытаюсь получить объект домена из списка аргументов (команд-объектов), это дает мне ошибку IndexOutOfBound.

Я также пытался использовать концепцию ленивого списка с объектом команды. Тем не менее, список объектов команды не заполняется.

    class CategoryItems{ // command object class
       List<Item> items = new ArrayList<Item>()
    }

   class ItemController{
     def save(CategoryItems categoryItems){
            service.save(categoryItems.get(0)) // getting indexOutOfBound 
                                               //Exception
          }
     }

Как я могу заполнить список объектов-команд?


person Kapil Thakkar    schedule 11.12.2017    source источник
comment
Вы описали проблему, но для получения ответа было бы лучше, если бы вы еще и задали вопрос.   -  person Pascal Rosin    schedule 11.12.2017
comment
Как получилось, что вы пытались получить (0) от объекта? Я думаю, вам следует обновить его до service.save(categoryItems) или, если вы хотите сохранить элемент: service.save(categoryItems.items?.getAt(0))   -  person Koloritnij    schedule 11.12.2017


Ответы (1)


Когда вы передаете объект команды в качестве аргумента действию контроллера, вы получаете экземпляр этого объекта команды.

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

categoryItems.items.each{
   service.save(it)
}

// or
categoryItems.items.each{ Item item ->
   service.save(item )
}
person elixir    schedule 11.12.2017