0

我想浏览表单数据中的所有字段。

我知道在形式上我可以做这样的事情:

 // Go through all fields with IFormFieldVisitor
box.visitFields(new IFormFieldVisitor() {

  @Override
  public boolean visitField(IFormField field, int level, int fieldIndex) {

    if (field instanceof MyClass) {
      ...
    }
    return true;
  }
}, 0);

但是表单数据没有这个选项。如何在表单数据中执行此操作。

4

1 回答 1

2

您可以使用

  1. AbstractFormData.getFields获取顶级字段。如果您还需要嵌套字段,请查看更复杂的AbstractFormData.getAllFieldsRec().
  2. AbstractFormData.getAllProperties通过使用注释获取器和设置器来获取您定义的属性@FormData

那是一个简单的例子。

现在,如果您使用Scout Extension 机制将新元素添加到现有表单(它是 formdata),您将不得不考虑这些贡献。如果需要这样做,可以参考AbstractForm.importFormData的源代码,看看 Scout 是如何实现的。

于 2016-01-19T06:35:20.260 回答