在Vaadin 7中,我試圖將我的ComboBox的電話號碼綁定到POJO中的POJO列表。 例如:我有PersonVo,它包含一個List電話; PersonCommunicationVo包含電話號碼的值。Vaadin - 如何綁定POJO的列表
我用結合PersonVo的其他特性是:
BeanFieldGroup<PersonVo>personBinder = new BeanFieldGroup<PersonVo>(PersonVo.class);
personBinder.setItemDataSource(person);
myFormLayout.addComponent(personBinder.buildAndBind("Firstname", "firstName"));
myFormLayout.addComponent(personBinder.buildAndBind("Country", "country.name"));
這裏PersonVo:
@Table(name = "CONTACT.T_PERSON")
@Entity
@Audited
public class PersonVo {
@Id
@GeneratedValue(strategy=GenerationType.AUTO)
@Column(name="id",updatable = false)
private Long personId;
@Column(name = "FIRSTNAME")
private String firstName;
@Column(name = "LASTNAME")
private String lastName;
@Column(name = "TITLE")
private String title;
...
@OneToMany(fetch = FetchType.LAZY, mappedBy = "personId")
@AuditMappedBy(mappedBy = "personId")
private List<PersonCommunicationVo> **phoneNumbers**;
...
和PersonCommunicationVo:
@Entity
@Table(name = "CONTACT.PERSON_COMMUNICATION")
@Audited
public class PersonCommunicationVo {
@Id
@GeneratedValue(strategy=GenerationType.AUTO)
@Column(name="id",updatable = false)
private Long persCommId;
@Column(name = "PERSON_ID")
private Long personId;
@ManyToOne
@JoinColumn(name = "COM_TYPE_ID")
private CommunicationTypesVo communicationType;
@Column(name = "VALUE")
private String **value**;
而且我想做些什麼將我的電話號碼組合框綁定到列表phoneNum來自PersonVo的基於來自PersonCommunicationVo的值。 但是難點在於根據組合框中選擇的內容在列表中選擇正確的PersonCommunicationVo。例如:我在組合框中選擇了電話號碼+32 123 456 789,該值應該映射到phoneNumbers.get(indexOfSelectedItem).getValue()。 爲了更新電話號碼,添加一個新的等...
感謝您的幫助!
對不起,我可憐的解釋和我的英語不好。我編輯了這個問題:) – kiseiju
組合框只有1個項目作爲值,所以它不能綁定到列表屬性。我想過表格,但即使在多選模式下,您也需要選擇所有元素。 – agad