与列表绑定数据时类强制转换异常

时间:2015-09-10 08:24:12

标签: grails data-binding

域名看起来像

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

}

显示以下错误

Message: java.lang.String cannot be cast to java.lang.Integer

在视图页面中有4个用于输入面额的文本框。我在想这些字符串,即&#39; 10&#39; 20&#39;,&#39; 30&#39;&#39; 40&#39;在绑定期间将自动转换为整数。我认为该错误与绑定此列表有关。我感谢任何帮助。谢谢!

有趣的是当我将列表类型更改为String时,如下所示:

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

}

所以,我确信列表的Integer类型是问题的根源。由于面额是整数,我想不出任何其他类型。我很感激任何帮助。谢谢!

0 个答案:

没有答案