我试图弄清楚如何使用命令对象将具有相同名称的请求参数绑定(bind)到列表。

我的命令对象当前看起来像:

class EventSaleDataCommand {
    List<Long> eventIds

    static constraints = {
        eventIds nullable: false
    }
}

该命令对象的问题在于,即使eventIds参数为空,它也将允许诸如appName/controllerName/actionName?eventIds=&eventsIds=之类的网址通过验证过程。

我想确认至少有一个eventId不为空,所以我想知道最好的方法是什么?

最佳答案

这可能会给您您想要的:

class EventSaleDataCommand {
    List<Long> eventIds

    static constraints = {
        eventIds validator: { val ->
            val.any {
                it != null
            }
        }
    }
}

这将验证至少一个元素为非null。

10-08 18:33