在grails 3命令对象get字段中填充域列表

时间:2017-12-11 10:18:40

标签: grails grails3

我需要存储一个域列表,为此我在控制器的命令对象中使用了一个列表。 但是当我尝试从参数(命令对象)列表中获取域对象时,它会给我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
          }
     }

如何填充命令对象列表?

1 个答案:

答案 0 :(得分:1)

将命令对象作为参数传递给控制器​​操作时,会收到该命令对象的实例。

在您的情况下,它是您创建的命令对象的实例,而不是命令对象列表。由于您已创建项目列表,因此可以保存每个项目

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

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