我想浏览表单数据中的所有字段。
我知道在形式上我可以这样做:
// 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);
但表单数据没有此选项。如何在表单数据中执行此操作。
答案 0 :(得分:2)
您可以使用
获取它们AbstractFormData.getFields
获取顶级字段。如果您还需要嵌套字段,请查看更复杂的AbstractFormData.getAllFieldsRec()
。AbstractFormData.getAllProperties
通过使用@FormData
这是一个简单的案例。
现在,如果您使用Scout Extension mechanism将新元素添加到现有表单(并且是formdata),则必须考虑这些贡献。 如果您需要这样做,可以参考AbstractForm.importFormData的源代码来了解Scout如何实现这一点。