使用以下请求参数调用收到的Grails Controller :

defaultPrice[0].amount  22
defaultPrice[0].currency 1
defaultPrice[0].id
defaultPrice[1].amount  33
defaultPrice[1].currency 3
defaultPrice[1].id

我定义了以下命令类:
class PriceCommand {
    BigDecimal amount
    Integer currency
    Integer id
}

我尝试在操作中将请求参数绑定(bind)到“列表”
def save = {List<PriceCommand> defaultPrice ->

}

但在操作中,defaultPrice为null。

最佳答案

它需要一个带有现有数据列表且具有指定名称的命令,该命令将使用请求中的数据填充。

尝试

import org.apache.commons.collections.ListUtils
import org.apache.commons.collections.Factory

class PriceListCommand {
   List<PriceCommand> defaultPrice = ListUtils.lazyList([], {new PriceCommand()} as Factory)
}

并在 Controller 内使用此命令。应该可以

10-08 19:39