Grails 使用列表绑定数据时类强制转换异常

Grails 使用列表绑定数据时类强制转换异常,grails,data-binding,Grails,Data Binding,域看起来像 class EventDonation implements Serializable{ String title String body Integer customDonationMin Integer customDonationMax EntityStatus status List denominations static hasMany = [denominations: Integer] } 请

域看起来像

class EventDonation implements Serializable{

    String title
    String body
    Integer customDonationMin
    Integer customDonationMax   

    EntityStatus status

    List denominations

    static hasMany = [denominations: Integer]


}
请注意,面额是整数列表。现在在装订的时候

List<String> whiteList = ['title', 'body', 'customDonationMin', 'customDonationMax', 'denominations']
bindData(don, params, ['include': whiteList])


if(params.status){
    don.status = EntityStatus.ACTIVE            
}
else{           
    don.status = EntityStatus.INACTIVE          
}


don.validate()

if(don.hasErrors()){

    render(view: "editdonation", model: [id:id, donation:don])
    return

}
在查看页面中,有4个用于输入面额的文本框。我认为字符串,即“10”、“20”、“30”、“40”将在绑定期间自动转换为整数。我认为该错误与绑定此列表有关。谢谢你的帮助。谢谢

有趣的是,我将列表的类型更改为字符串,如下所示:

class EventDonation implements Serializable{

    String title
    String body
    Integer customDonationMin
    Integer customDonationMax   

    EntityStatus status

    List denominations

    static hasMany = [denominations: String]

}
以下绑定工作正常,即不会抛出错误

List<String> whiteList = ['title', 'body', 'customDonationMin', 'customDonationMax', 'denominations']
bindData(don, params, ['include': whiteList])


if(params.status){
    don.status = EntityStatus.ACTIVE            
}
else{           
    don.status = EntityStatus.INACTIVE          
}


don.validate()

if(don.hasErrors()){

    render(view: "editdonation", model: [id:id, donation:don])
    return

}

因此,我确信列表的整数类型是问题的根源。由于面额是整数,我想不出任何其他类型。我非常感谢你在这方面的帮助。谢谢大家!

如果从域类中删除列表名称,会发生什么情况?hasMany仍然添加了这个属性。你能添加你在这里得到的参数映射吗?@RahulBGangwar在查看页面中,我为面额输入了4个整数,即4、6、7、9,并按如下方式打印参数映射:[面额[2]:7,面额[1]:6,面额[0]:4,正文:捐赠正文,标题:捐赠标题,customDonationMax:100,创建:提交,面额[3]:9,_状态:,customDonationMin:1,id:1,操作:更新国家,控制器:捐赠]令人费解的是,只有在将面额列表绑定到面额列表时才会发生错误,因此我确信问题与我绑定面额列表的方式有关。在视图中,我将4个文本框命名为面额[0]、面额[1]、面额[2]、面额[3]。我希望问题不在这里。
List<String> whiteList = ['title', 'body', 'customDonationMin', 'customDonationMax', 'denominations']
bindData(don, params, ['include': whiteList])


if(params.status){
    don.status = EntityStatus.ACTIVE            
}
else{           
    don.status = EntityStatus.INACTIVE          
}


don.validate()

if(don.hasErrors()){

    render(view: "editdonation", model: [id:id, donation:don])
    return

}