Eclipse Scout 遍历表单数据中的字段
Eclipse Scout go through fields in form data
我想遍历表单数据中的所有字段。
我知道在形式上我可以做这样的事情:
// 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);
但是表单数据没有这个选项。如何在表单数据中执行此操作。
您可以使用
获取它们
AbstractFormData.getFields
获取 top-level 字段。如果您还需要嵌套字段,请查看更复杂的 AbstractFormData.getAllFieldsRec()
.
AbstractFormData.getAllProperties
获取您通过使用 @FormData
注释 getter 和 setter 定义的属性
这是最简单的情况。
现在,如果您使用 Scout Extension mechanism 向现有表单(及其表单数据)添加新元素,则必须将这些贡献考虑在内。
如果你需要这样做,你可以参考AbstractForm.importFormData的源代码,看看Scout是如何实现的。
我想遍历表单数据中的所有字段。
我知道在形式上我可以做这样的事情:
// 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);
但是表单数据没有这个选项。如何在表单数据中执行此操作。
您可以使用
获取它们AbstractFormData.getFields
获取 top-level 字段。如果您还需要嵌套字段,请查看更复杂的AbstractFormData.getAllFieldsRec()
.AbstractFormData.getAllProperties
获取您通过使用@FormData
注释 getter 和 setter 定义的属性
这是最简单的情况。
现在,如果您使用 Scout Extension mechanism 向现有表单(及其表单数据)添加新元素,则必须将这些贡献考虑在内。 如果你需要这样做,你可以参考AbstractForm.importFormData的源代码,看看Scout是如何实现的。