在 java beanutils.populate 上解析列表<Object>

Parse List<Object> on java beanutils.populate

我是 java beanutils 的新手,我真的很难弄清楚如何才能做到这一点。 我可以从 Html FORM 中获取所有字段,并填充 beanutils.populate(Object, request.getParamterMap());

一切正常,甚至映射为 "CustomClass someobj" 的字段,我遇到了一点麻烦,但是通过将表单输入字段指定为 "someobj.field",我可以得到正确的结果。 现在我需要做一个地图作为 List listobj 但我不知道怎么做。 尝试将表单名称设为 "listobj[].field", "listobj.[].field", "listobj.[]field", "listobj[][field]",但这项工作的 none。我可以通过 setProperty("listobj",List<CustomClass>);

手动完成

我明白了。 对于遇到同样问题的任何人,我所做的是:

以Html形式

name="indexedListobj[listobj.id].field"

我正在使用休眠,所以我的对象现在是 Set<CustomClass> listobj 而不是 List<CustomClass> listobj 以防止收集异常。 我所做的是创建另一种方法来检查 Set 中对象的索引,然后,如果存在则更新对象,或者如果不存在则附加一个新对象。像这样:

public CustomClass getindexedListobj(int index) {
     CustomClass tmp = null;
     for(CustomClass o : this.listobj)
        if(o.getId() == index) {
          tmp = o;
          break;
        }
     if(tmp == null) {
       tmp = new CustomClass();
       this.listobj.add(tmp);
     }
   return tmp;
}