我有一个带有2个标签的选项卡(A& B)。我想在选项卡A上放置所有常用表单字段,在选项卡B上放置特定表单字段。所有表单字段组成一个单独的实体。
例如。我的数据模型如下(我省略了构造函数。这只是一个例子,所以我只使用一个表单字段)。
public class Person extends FormLayout {
TextField name = new TextField("Name"); //Common to all persons
}
public class Student extends Person {
TextField grade = new TextField("Grade"); //Specific to students
}
我想把名字放在标签A上,因为它对所有人都是通用的,而标签B上的等级是因为它特定于学生。 姓名和成绩构成学生。我在后端有一个名为Student的POJO,它将映射到表单字段。我尝试了下面的
tabsheet.addTab(new Person(), "Common"); //Display only Name - GOOD
tabsheet.addTab(new Student(), "Specific"); //Display both Name & Grade - BAD. I only want Grade
如何将表单字段拆分到不同的标签上?
由于
答案 0 :(得分:0)
学生扩展了人,所以在第二个标签中你看到两个字段是正确的。
我考虑回顾一下你想要完成的整体结构。 也许您可以尝试使用两种方法创建一个辅助类,一个返回公共表单,另一个返回特定表单。或者只使用一个可配置的Student实例,您可以在其中将字段标记为常用字段,并在选项卡中相应地执行操作。它似乎不是一个好的设计,除非我错过了一些重点; - )
你也可以使用像这样的附加组件 https://vaadin.com/directory#!addon/fieldbinder-addon 帮助你进行现场处理。
答案 1 :(得分:0)
我找到了问题的解决方案。我需要使用BeanFieldGroup。