Java 如何在单击按钮时将组件绑定到数据bean vaadin
考虑一个带有一些字段的注册表单,如这个bean中所述Java 如何在单击按钮时将组件绑定到数据bean vaadin,java,web,frameworks,vaadin,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;
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");
RegistrationEntity bean=newRegistrationEntity();
BeanItem项=新的BeanItem(bean);
fieldGroup=新的fieldGroup(项目);
firstName=新文本字段(“firstName”);
firstName.setRequired(true);
firstName.setWidth(公共字段宽度);
fieldGroup.bind(firstName,“firstName”);
lastName=新文本字段(“姓氏”);
lastName.setRequired(true);
lastName.setWidth(公共字段宽度);
绑定(lastName,“lastName”);
dateOfBirth=新的日期字段(“出生日期”);
需要设置出生日期(true);
出生日期设置宽度(公共字段宽度);
绑定(dateOfBirth,“dateOfBirth”);
mothersMaidenName=新文本字段(“母亲的娘家姓;”);
mothersMaidenName.setRequired(true);
设置宽度(公共字段宽度);
fieldGroup.bind(mothersMaidenName,“motherName”);
电子邮件=新文本字段(“用户:”);
email.setRequired(true);
setInputPrompt(“您的用户名(例如。joe@email.com)");
email.addValidator(新的EmailValidator)(
“用户名必须是电子邮件地址”);
email.setInvalidAllowed(false);
email.setWidth(公共字段宽度);
fieldGroup.bind(电子邮件,“emailId”);
panNo=新文本字段(“PAN:”);
panNo.setRequired(true);
panNo.setWidth(公共字段宽度);
fieldGroup.bind(panNo,“panNumber”);
这将在初始化时使用空值绑定组件但是我希望组件显示空值,而不是null
当用户单击某个特定按钮时,只有值应该绑定到bean,该bean稍后可用于持久化您可以使用setNullRepresentation()实现此目的 这样,当值为空时,您可以告诉文本字段显示什么 setNullRepresentation(“”) 例如: firstName.setNullRepresentation(“”)
尝试这种方式,以便在尝试注册时不会显示空值。这不是我想要的。。。我最初不想要任何值,点击一个按钮,它应该给Bean赋值,除了NULL以外,什么都不是?也许您可以在用户单击时调用各种xxx.bind(…)。我不能完全肯定我理解你想做什么。新条目的正常使用情况是,当用户单击“保存”或“处理”时,有一个空bean(绑定到字段),验证通过后,您可以对bean值执行任何操作。。。。