【问题标题】:In grails 3 command object get field to populate list of domain在 grails 3 命令对象获取字段以填充域列表
【发布时间】:2017-12-11 10:18:39
【问题描述】:

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

如何填充命令对象列表?

【问题讨论】:

  • 您描述了一个问题,但要得到答案,最好您也提出一个问题。
  • 你试图从对象中获取(0)是怎么来的?我认为您应该将其更新为 service.save(categoryItems) 或者如果您想保存项目: service.save(categoryItems.items?.getAt(0))

标签: grails grails3


【解决方案1】:

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

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

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-11-01
    • 1970-01-01
    • 1970-01-01
    • 2011-02-16
    • 2013-10-09
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多