Vaadin এর ফর্ম কম্পোনেন্টস ব্যবহার করে ইউজার ইনপুট ভ্যালিডেশন করা যায়। তবে কখনও কখনও প্রি-ডিফাইন্ড ভ্যালিডেটর (যেমন NotEmpty, Email, Integer) ব্যবহার করে আপনার প্রয়োজনীয় ভ্যালিডেশন পূর্ণ হয় না। সেক্ষেত্রে আপনি নিজের কাস্টম ভ্যালিডেটর তৈরি করতে পারেন।
কাস্টম ভ্যালিডেটর তৈরি করার প্রয়োজন
কাস্টম ভ্যালিডেটর তৈরি করার জন্য সাধারণত আপনাকে একটি নতুন ভ্যালিডেটর ক্লাস তৈরি করতে হবে যা com.vaadin.flow.data.validator.AbstractValidator অথবা com.vaadin.flow.data.validator.Validator ইন্টারফেস বা ক্লাস থেকে এক্সটেন্ড করবে। এর মাধ্যমে আপনি নিজের কাস্টম ভ্যালিডেশন লজিক এবং মেসেজ কাস্টমাইজ করতে পারবেন।
কাস্টম ভ্যালিডেটর তৈরি করার ধাপ
AbstractValidatorক্লাস এক্সটেন্ড করাAbstractValidatorক্লাসটি ব্যবহার করে আপনি কাস্টম ভ্যালিডেটর তৈরি করতে পারেন। এই ক্লাসেরisValidমেথডটি আপনার ভ্যালিডেশন লজিক প্রয়োগ করে।ভ্যালিডেশন লজিক লেখার মাধ্যমে ভ্যালিডেটর তৈরি করা
নিচে একটি উদাহরণ দেওয়া হলো যেখানে
TextFieldএর জন্য একটি কাস্টম ভ্যালিডেটর তৈরি করা হয়েছে, যা চেক করবে যে ইউজার ইনপুটের দৈর্ঘ্য ৫ এর বেশি হতে হবে।import com.vaadin.flow.data.validator.AbstractValidator; public class MinLengthValidator extends AbstractValidator<String> { private final int minLength; public MinLengthValidator(int minLength) { super("Input must be at least " + minLength + " characters long"); this.minLength = minLength; } @Override protected boolean isValidValue(String value) { return value != null && value.length() >= minLength; } }- এই
MinLengthValidatorকাস্টম ভ্যালিডেটরটি চেক করবে যে ইনপুটের দৈর্ঘ্য একটি নির্দিষ্টminLengthএর চেয়ে ছোট নয়। - এখানে
super("message")ব্যবহার করা হয়েছে, যা ভ্যালিডেশন ফেইল হলে শো করা হবে।
- এই
কাস্টম ভ্যালিডেটর ব্যবহার করা
কাস্টম ভ্যালিডেটরটি এখন আপনি যেকোনো ফর্ম কম্পোনেন্টে ব্যবহার করতে পারেন। উদাহরণস্বরূপ, একটি
TextFieldএ এই কাস্টম ভ্যালিডেটর ব্যবহার করা হলো:TextField textField = new TextField("Enter at least 5 characters"); MinLengthValidator minLengthValidator = new MinLengthValidator(5); textField.setValidator(minLengthValidator); // ভ্যালিডেশন ট্রিগার করার জন্য: textField.addValueChangeListener(event -> { if (textField.isInvalid()) { // Validation failed, show error message Notification.show("Validation failed: " + textField.getErrorMessage()); } });- এখানে
setValidator()মেথড দিয়ে কাস্টম ভ্যালিডেটর যোগ করা হয়েছে। addValueChangeListenerব্যবহার করে ভ্যালিডেশন প্রয়োগ করা হয়েছে এবং যদি ইনপুটটি অবৈধ হয়, তাহলে একটি এরর মেসেজ শো করা হচ্ছে।
- এখানে
কাস্টম ভ্যালিডেটরের সুবিধা
- ইনপুট কাস্টমাইজ করা: আপনার অ্যাপ্লিকেশনের জন্য বিশেষ কোনো ভ্যালিডেশন প্রয়োজন হলে কাস্টম ভ্যালিডেটর ব্যবহার করতে পারবেন, যা স্ট্যান্ডার্ড ভ্যালিডেটর দিয়ে সম্ভব নয়।
- ভ্যালিডেশন লজিক এক্সটেন্ড করা: কাস্টম ভ্যালিডেটর ব্যবহার করে আপনি বিভিন্ন ধরনের কাস্টম লজিক যেমন ডেটাবেস চেক, ফাইল চেক বা অন্যান্য কন্ডিশন চেক করতে পারবেন।
- ভ্যালিডেশন মেসেজ কাস্টমাইজ করা: ভ্যালিডেশন মেসেজগুলি কাস্টমাইজ করা সম্ভব, যাতে ইউজাররা সঠিকভাবে ইনপুট করতে পারে।
উপসংহার
Vaadin এ কাস্টম ভ্যালিডেটর তৈরি করে আপনি আপনার অ্যাপ্লিকেশনের ভ্যালিডেশন লজিক আরও কার্যকরভাবে কাস্টমাইজ করতে পারবেন। AbstractValidator ক্লাস বা Validator ইন্টারফেস ব্যবহার করে আপনি প্রয়োজনীয় ভ্যালিডেশন লজিক লিখতে পারবেন এবং ব্যবহারকারীর ইনপুটকে আরও নির্ভরযোগ্যভাবে যাচাই করতে পারবেন।