如何在vaadin中将表单字段拆分为不同的标签页?

时间:2015-05-05 02:34:04

标签: vaadin vaadin7

我有一个带有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

如何将表单字段拆分到不同的标签上?

由于

2 个答案:

答案 0 :(得分:0)

学生扩展了人,所以在第二个标签中你看到两个字段是正确的。

我考虑回顾一下你想要完成的整体结构。 也许您可以尝试使用两种方法创建一个辅助类,一个返回公共表单,另一个返回特定表单。或者只使用一个可配置的Student实例,您可以在其中将字段标记为常用字段,并在选项卡中相应地执行操作。它似乎不是一个好的设计,除非我错过了一些重点; - )

你也可以使用像这样的附加组件 https://vaadin.com/directory#!addon/fieldbinder-addon 帮助你进行现场处理。

答案 1 :(得分:0)

我找到了问题的解决方案。我需要使用BeanFieldGroup。