【问题标题】:Spring databinder reusingSpring数据绑定器重用
【发布时间】:2013-02-12 21:24:27
【问题描述】:

我正在使用 DataBinder 循环创建几个对象。我想知道是否可以重用 DataBinder 对象而不是每次都创建它。

有可能吗?

现在我有:

while (condition) {
    obj = new MyObj();
    DataBinder db = new DataBinder(obj,"my obj");
    db.registerCustomEditor(Date.class, new CustomDateEditor(new SimpleDateFormat(dateFormatParam), false));
    // set up binder with some editors etc.
    objectvalues = getValues();
    MutablePropertyValues mpv = new MutablePropertyValues();
    for (int i=0;i<fieldNames.length;i++){
        mpv.add(StringUtils.trim(fieldNames[i]), objectvalues[i]);
    }
    db.bind(mpv);
    // do something with obj...
}

我想要(这只是想象......):

obj = new MyObj();
DataBinder db = new DataBinder(obj,"my obj");
db.registerCustomEditor(Date.class, new CustomDateEditor(new SimpleDateFormat(dateFormatParam), false));
// set up binder with some editors etc.
MutablePropertyValues mpv = new MutablePropertyValues();
for (int i=0;i<fieldNames.length;i++){
    mpv.add(StringUtils.trim(fieldNames[i]), "empty value");
}
while (condition) {
    objectvalues = getValues();
    for (int i=0;i<fieldNames.length;i++){
        mpv.setPropertyValueAt(objectvalues[i], i);
    }
    db.bind(mpv);
    objCopy = obj.clone();
    // do something with objCopy...
}

有什么安全的方法来做到这一点,不浪费内存和时间?

【问题讨论】:

    标签: spring databinder


    【解决方案1】:

    不,DataBinder 中的目标对象是最终的,如果你想绑定另一个对象,你必须为它创建一个新的DataBinder

    【讨论】:

      猜你喜欢
      • 2012-12-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-05-17
      • 1970-01-01
      • 2012-04-29
      • 2011-10-23
      相关资源
      最近更新 更多