如何将TextFields中的数据绑定到DAO对象?这不起作用仍为null实体的DAO,所有绑定都设置好了
public void savePersonToDB() {
personDAO = new PersonDAO();
binder.setBean(personDAO);
if (binder.validate().isOk()) {
repository.save(personDAO);
答案 0 :(得分:0)
personDAO = new PersonDAO();
使用默认构造函数实例化<launch>
<node pkg="yourpackage" type="yourdefaultnodename"name="yourcustomnodename"/>
</launch>
。
binder.setBean(PersonDao的);
这意味着加载personDAO
实例中的值。将PersonDAO设置为在更新任何绑定字段时进行更新。
要将表单属性设置为personDAO
bean,可以使用PersonDAO
,这样可以更轻松地将字段绑定到bean。您可以阅读更多信息,data binding如何使用Vaadin Doc。
例如;
FieldGroup
new data binding API用新机制替换旧的Container,Item,Property,FieldGroup,Validator,Converter和相关类。使用这些组件的组件也会使用新API替换为更新的实现,并且旧的数据绑定API和组件已移至单独的兼容包中以便于迁移。
以下是来自Vaadin的有趣博客,可以帮助您了解// Have an item
PropertysetItem item = new PropertysetItem();
item.addItemProperty("name", new ObjectProperty<String>("Zaphod"));
item.addItemProperty("age", new ObjectProperty<Integer>(42));
// Define a form as a class that extends some layout
class MyForm extends FormLayout {
// Member that will bind to the "name" property
TextField name = new TextField("Name");
// Member that will bind to the "age" property
@PropertyId("age")
TextField ageField = new TextField("Age");
public MyForm(Item item) {
// Add the fields
addComponent(name);
addComponent(ageField);
// Now bind the member fields to the item
FieldGroup binder = new FieldGroup(item);
binder.bindMemberFields(this);
}
}
// Create one
MyForm form = new MyForm(item);
// And the form can be used in an higher-level layout
layout.addComponent(form);
在Vaadin 8中的运作方式。
How to bind your form to your domain model – the Vaadin 8 style