यह सभी प्रपत्र क्षेत्रों का बंधन है। मेरे पास लंबे प्रकार का टेक्स्टफील्ड है इसलिए यह शून्य नहीं हो सकता है।

consumerBinder.forField(legal_hold)
    .bind(Consumer::getLegal_hold, Consumer::setLegal_hold);

consumerBinder.forField(deceased_fg)
    .bind(Consumer::getDeceased_fg, Consumer::setDeceased_fg);

consumerBinder.forField(household_id)
    .withConverter(new StringToLongConverter("Must be a number"))
    .bind(Consumer::getHousehold_id,Consumer::setHousehold_id);

consumerBinder.forField(ins_efid)
    .withConverter(new StringToLongConverter("Must be a number"))
    .bind(Consumer::getIns_efid,Consumer::setIns_efid);

consumerBinder.forField(ins_pqid)
    .withConverter(new StringToLongConverter("Must be a number"))
    .bind(Consumer::getIns_pqid,Consumer::setIns_pqid);

consumerBinder.forField(ins_rid)
    .withConverter(new StringToLongConverter("Must be a number"))
    .bind(Consumer::getIns_rid,Consumer::setIns_rid);

consumerBinder.forField(upd_efid)
    .withConverter(new StringToLongConverter("Must be a number"))
    .bind(Consumer::getUpd_efid,Consumer::setUpd_efid);

consumerBinder.forField(upd_pqid)
    .withConverter(new StringToLongConverter("Must be a number"))
    .bind(Consumer::getUpd_pqid,Consumer::setUpd_pqid);

consumerBinder.forField(upd_rid)
    .withConverter(new StringToLongConverter("Must be a number"))
    .bind(Consumer::getUpd_rid,Consumer::setUpd_rid);

consumerBinder.forField(upd_tmstmp)
    .withConverter(new StringTimestampConvertor())
    .bind(Consumer::getUpd_tmstmp, Consumer::setUpd_tmstmp);

consumerBinder.forField(ins_tmstmp)
    .withConverter(new StringTimestampConvertor())
    .bind(Consumer::getIns_tmstmp, Consumer::setIns_tmstmp);

consumerBinder.forField(deceased_dt)
    .withConverter(new StringTimestampConvertor())
    .bind(Consumer::getDeceased_dt, Consumer::setDeceased_dt);

binder.setBean(new Consumer());

इस वजह से मुझे लंबे क्षेत्रों के लिए डिफ़ॉल्ट मान 0 मिल रहा है। लेकिन मैं चाहता हूं कि फॉर्म स्पष्ट हो।

1
deep Kumar 9 जिंदा 2020, 11:22

1 उत्तर

सबसे बढ़िया उत्तर

मैं आपके लिए दो अलग-अलग विकल्पों के साथ आ सकता हूं, जो इस बात पर निर्भर करता है कि आप एप्लिकेशन को कैसे व्यवहार करना चाहते हैं।

अगर आप टेक्स्ट फ़ील्ड में हमेशा 0 को खाली दिखाना चाहते हैं, तो आप एक कस्टम StringToLongConverter उपवर्ग बना सकते हैं जो 0 को "" में बदल देता है और अन्यथा मूल कार्यान्वयन के लिए प्रतिनिधि।

यदि आप चाहते हैं कि 0 केवल नया डेटा दर्ज करते समय खाली दिखाई दे, लेकिन किसी मौजूदा आइटम को संपादित करते समय 0 को 0 के रूप में दिखाएं, तो आप बाइंडर को प्रारंभ करते समय setBean को छोड़ सकते हैं और इसके बजाय केवल बचत करते समय बीन इंस्टेंस बनाएं और पॉप्युलेट करें, उदाहरण के लिए कुछ इस तरह:

saveButton.addClickListener(event -> {
  Consumer newConsumer = new Consumer();
  binder.writeBean(newConsumer);
  saveInDatabase(newConsumer);
});

आप दस्तावेज़ को https पर पढ़ सकते हैं: //vaadin.com/docs/v14/flow/binding-data/tutorial-flow-components-binder-load.html setBean और writeBean के बीच अंतर के बारे में अधिक जानकारी के लिए।

3
Leif Åstrand 9 जिंदा 2020, 09:09