[英]Bind a list of objects into a Grails command?
I have 2 command objects, one of them contained List of other 我有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
}
}
From front end to controller I passed something like this 从前端到控制器,我传递了类似的内容
[coupletText:2342342352342, coupletPosition:1, isChorus:false]
[coupletText:frfsdfsdf, coupletPosition:2, isChorus:true]
......
[coupletText:sd9f9s9df9, coupletPosition:n, isChorus:false]
when try save list of couplets on 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]
}
I receive error message 我收到错误信息
groovy.lang.MissingMethodException Message No signature of method: java.util.LinkedHashMap.validate() is applicable for argument types: () values: [] Possible solutions: wait(), values(), values() groovy.lang.MissingMethodException消息没有方法签名:java.util.LinkedHashMap.validate()适用于参数类型:()值:[]可能的解决方案:wait(),values(),values()
CoupletCommand needs to implement Validateable or requires the annotation as well. CoupletCommand需要实现Validateable或也需要注释。 Everything else seems to be fine 其他一切似乎都很好
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.