如何序列化和反序列化 Vaadin Flow 14 中的组件?
How can I serialize and deserialize components in Vaadin Flow 14?
假设我有一堆文本字段、文本框、带有名称的按钮和复选框等。
当我按下保存按钮时,我想保存所有这些组件。我写了一个 class 来从这些组件中挑选出感兴趣的值。但问题是,它会变得太多代码。
将组件中的数据保存到文件中一定是一种更简单的方法吗?
如果您的数据表示为业务对象 (JavaBeans),那么使用 Vaadin 的 Binder class(它还有其他附带好处,例如促进组件的验证和转换)更容易实现您的目标。在最简单的形式中,它可能看起来像这样:
Binder<Person> binder = new Binder<>(Person.class);
TextField text= new TextField();
binder.bind(text, Person::getName, Person::setName);
Person person = new Person("First Last");
//Then you can set this person bean to be automatically in sync
//with the the TextField like so
binder.setBean(person);
Vaadin 的文档有更多示例和高级用例:
https://vaadin.com/docs/v14/flow/binding-data/tutorial-flow-components-binder.html
假设我有一堆文本字段、文本框、带有名称的按钮和复选框等。
当我按下保存按钮时,我想保存所有这些组件。我写了一个 class 来从这些组件中挑选出感兴趣的值。但问题是,它会变得太多代码。
将组件中的数据保存到文件中一定是一种更简单的方法吗?
如果您的数据表示为业务对象 (JavaBeans),那么使用 Vaadin 的 Binder class(它还有其他附带好处,例如促进组件的验证和转换)更容易实现您的目标。在最简单的形式中,它可能看起来像这样:
Binder<Person> binder = new Binder<>(Person.class);
TextField text= new TextField();
binder.bind(text, Person::getName, Person::setName);
Person person = new Person("First Last");
//Then you can set this person bean to be automatically in sync
//with the the TextField like so
binder.setBean(person);
Vaadin 的文档有更多示例和高级用例: https://vaadin.com/docs/v14/flow/binding-data/tutorial-flow-components-binder.html