如何仅在按钮单击时将组件绑定到数据bean vaadin

时间:2014-04-21 08:33:11

标签: java web frameworks vaadin

考虑一个注册表单,其中包含一些字段,如本bean所述

 public class RegistrationEntity {
     private Long accountNumber;
     private String firstName;
     private String middleName;
     private String lastName;
     private Long phoneNumber;
     private String emailId;
     private Long communicationHouseNo;
     private String communicationStreet;
     private Long communicationPincode;
     private Long communicationLandLine;
     private String communicationLandmark;
     private Long permenantHouseNo;
     private String permenantStreet;
     private Long permenantPincode;
     private Long permenantLandLine;
     private String permenantLandmark;
 }

以及由此

设计的组件
 RegistrationEntity bean = new RegistrationEntity();
 BeanItem<RegistrationEntity> item = new BeanItem<RegistrationEntity>(bean);

 fieldGroup =   new FieldGroup(item);

 firstName = new TextField("First Name");
 firstName.setRequired(true);
 firstName.setWidth(COMMON_FIELD_WIDTH);
 fieldGroup.bind(firstName, "firstName");


 lastName = new TextField("Last Name");
 lastName.setRequired(true);
 lastName.setWidth(COMMON_FIELD_WIDTH);
 fieldGroup.bind(lastName, "lastName");

 dateOfBirth = new DateField("Date of birth");
 dateOfBirth.setRequired(true);
 dateOfBirth.setWidth(COMMON_FIELD_WIDTH);
 fieldGroup.bind(dateOfBirth, "dateOfBirth");

 mothersMaidenName = new TextField("Mother's Maiden name;");
 mothersMaidenName.setRequired(true);
 mothersMaidenName.setWidth(COMMON_FIELD_WIDTH);
 fieldGroup.bind(mothersMaidenName, "motherName");

 email = new TextField("User:");
 email.setRequired(true);
 email.setInputPrompt("Your username (eg. joe@email.com)");
 email.addValidator(new EmailValidator(
            "Username must be an email address"));
 email.setInvalidAllowed(false);
 email.setWidth(COMMON_FIELD_WIDTH);
 fieldGroup.bind(email, "emailId");

 panNo = new TextField("PAN:");
 panNo.setRequired(true);
 panNo.setWidth(COMMON_FIELD_WIDTH);
 fieldGroup.bind(panNo, "panNumber");

这会在初始化时使用空值绑定组件 但我希望组件显示空值而不是null 当用户点击某个特定按钮时,只有这些值应绑定到bean,以后可用于持久性

2 个答案:

答案 0 :(得分:0)

您可以使用setNullRepresentation()来实现此目的。

https://vaadin.com/de/book/-/page/components.textfield.html

这样,您可以告诉TextField当值为NULL时要显示的内容

答案 1 :(得分:0)

你应该使用

  

setNullRepresentation(&#34;&#34;);

例如:

  

firstName.setNullRepresentation(&#34;&#34;);

尝试这种方式,以便在您尝试注册时不会显示空值。