使用BeanUtils.copyProperties时获取错误(dest,src)

时间:2015-10-15 06:54:36

标签: java apache-commons-beanutils

我有2个表单类

// console.log($test.length);
var updateObj = [];

function getAllContents(){
    var $tableTr = $('tbody tr');
    updateObj = [];

    $tableTr.each(function(index, element){
        var $row_id = $(this).data("rowid");
        // console.log("ID in Table: " + $row_id);
        var status = $(this).find('#status option:selected').val();
        // console.log("ID "+$row_id+" in der Table hat den Status: "+status);
        var ma_name = $(this).find('#ma-name').val();
        // console.log(ma_name);
        var datum = $(this).find('#datum').val();
        // console.log(datum);
        var firmenname1 = $(this).find('#firmenname1').val();
        // console.log(firmenname1);
        var firmenname2 = $(this).find('#firmenname2').val();
        // console.log(firmenname2);
        var limit = $(this).find('#limit').val();
        // console.log(limit);
        var gruppe_kredit = $(this).find('#gruppe_kredit').val();
        // console.log(gruppe_kredit);
        var omv_kdnr = $(this).find('#omv_kdnr').val();
        // console.log(omv_kdnr);
        var sap_kdnr = $(this).find('#sap_kdnr').val();
        // console.log(sap_kdnr);
        var fos = $(this).find('#fos').val();
        // console.log(fos);
        var hga_kdnr = $(this).find('#fos').val();
        // console.log(hga_kdnr);

        var pushObj = {
                        row_id: $row_id,
                        status: status,
                        ma_name: ma_name,
                        datum: datum,
                        fa1: firmenname1,
                        fa2: firmenname2,
                        limit: limit,
                        gruppe_kredit: gruppe_kredit,
                        omv_kdnr: omv_kdnr,
                        sap_kdnr: sap_kdnr,
                        fos: fos,
                        hga_kdnr: hga_kdnr
                    };

        updateObj.push(pushObj);
        // PushObjekt mit Inhalt befüllen und das PushObjekt ins updateObjekt einbetten

        //console.log(updateObj);
    });
}

 getAllContents();

即,其中一个表单具有相同的变量名称lastModified with Date type,另一个具有joda DateTime类型

我正在尝试将form1值复制到form2

public class Form1{
 int id,
 String name,
 DateTime lastModified;

 //setters and getters
 }


public class Form2 {
 int id,
 String name,
 Date lastModified;

 //setters and getters
 }

但它给我的错误就像

Form1 form1 = dao.getForm1();
Form2 form2 = new Form2();

BeanUtils.copyProperties(form2,form1)

我尝试了

中给出的解决方案

https://stackoverflow.com/a/5757379/1370555

但它给我的错误就像

 org.apache.commons.beanutils.ConversionException: DateConverter does not        support default String to 'Date' conversion.

我认为它可以用apache ConvertUtils解决,但我不知道如何完成它

任何人都可以帮我解决这个问题吗?

1 个答案:

答案 0 :(得分:0)

BeanUtils.copyProperties(form2,form1)将一个表单的属性值复制到另一个表单。由于这两个表单的lastModified属性具有不同的数据类型且org.joda.time.DateTimejava.util.Date不兼容,你得到了例外。

您可以将属性更改为相同的引用类型,或者使用构造函数将值分配给相同变量引用的匹配数据类型