亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

綁定組合框 vaadin 8

綁定組合框 vaadin 8

慕標5832272 2022-09-07 17:33:56
我正在嘗試將vaadin 7代碼轉換為vaadin 8代碼而不是使用BeanFieldGroup vaadin 8文檔使用Binder將表單字段綁定到類。這似乎不適用于組合盒。我一直在尋找一種使用轉換器的方法,該轉換器似乎不適用于組合框。用于將數據綁定到此處的 vaadin 文檔中對于一個字段,轉換器工作:binder.forField(age).withConverter(                    new StringToIntegerConverter("Must enter a number")).bind(                    Student::getAge, Student::setAge);但是對于組合框,我不確定這將如何工作。ComboBox<String> gender = new ComboBox<String>("Gender");Binder binder = new Binder<Student>(Student.class);binder.bind(gender, Student::getGender, Student::setGender);我知道這是行不通的,是沒有辦法為組合框編寫轉換器,還是應該完全使用另一種方式。
查看完整描述

2 回答

?
犯罪嫌疑人X

TA貢獻2080條經驗 獲得超4個贊

您在注釋中提到,對象中的字段實際上是枚舉,而不是字符串。genderStudent


您的錯誤是您定義了 String 類型的 ComboBox,而不是 Gender 枚舉。


假設你的性別枚舉類叫做 ,這將起作用:Gender


ComboBox<Gender> gender = new ComboBox<Gender>("Gender");

Binder binder = new Binder<Student>(Student.class);

binder.bind(gender, Student::getGender, Student::setGender);

您可以向 ComboBox 中添加 ,以定義性別枚舉的顯示方式。默認情況下,它將使用該類。但是,例如,如果您愿意,您可以使用它來構建Vaadin組件。在文檔中查看它是如何完成的)。ItemLabelGeneratortoString()


查看完整回答
反對 回復 2022-09-07
?
紫衣仙女

TA貢獻1839條經驗 獲得超15個贊

我發現在vaadin 8中使用bindInstanceFields將表單數據綁定到類。


Binder binder = new Binder<Student>(Student.class);


binder.bindInstanceFields(this);

binder.readBean(student);


查看完整回答
反對 回復 2022-09-07
  • 2 回答
  • 0 關注
  • 110 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號