gpt4 book ai didi

grails - 将对象列表绑定(bind)到 Grails 命令中?

转载 作者:行者123 更新时间:2023-12-02 16:01:25 24 4
gpt4 key购买 nike

我有 2 个命令对象,其中一个包含其他列表

@grails.validation.Validateable
class SongCommand {

String title
List<CoupletCommand> coupletCommandList = [].withLazyDefault {new CoupletCommand()}
Boolean isChorusRepeat

static constraints = {
title blank: false, size: 1..129
coupletCommandList validator: { couplets, obj ->
def isValid = true
couplets.each {
isValid = isValid && it.validate()
}
return isValid
}
}
}
class CoupletCommand {

Integer coupletPosition
String coupletText
Boolean isChorus

static constraints = {
coupletText blank: false, size:20..700
isChorus nullable: true
}
}

从前端到 Controller 我通过了这样的东西
[coupletText:2342342352342, coupletPosition:1, isChorus:false]
[coupletText:frfsdfsdf, coupletPosition:2, isChorus:true]
......
[coupletText:sd9f9s9df9, coupletPosition:n, isChorus:false]

当尝试在 Controller 上保存对联列表时
def saveCouplets() {
def songCommand = new SongCommand()
// bad, but not necessary now
def count = session['songId'] as Integer
def bindingMap
for (int i = 1; i <= count; i++) {
bindingMap = [coupletText: params['coupletText-' + i],
coupletPosition: params['coupletPosition-' + i],
isChorus: (params['isChorus-' + i]) ? params['isChorus-' + i] : false]
songCommand.coupletCommandList.add(bindingMap)
}

//Validate it
//if valid
if (songCommand.validate()) {
coupletService.addCouplets(bindingMap, params)
} else {
render model: [command: songCommand]
}
//else render view show model [command: command]
}

我收到错误消息

groovy.lang.MissingMethodException Message No signature of method: java.util.LinkedHashMap.validate() is applicable for argument types: () values: [] Possible solutions: wait(), values(), values()

最佳答案

CoupletCommand 需要实现 Validateable 或者也需要注解。其他一切似乎都很好

关于grails - 将对象列表绑定(bind)到 Grails 命令中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30444714/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com