Input Validation এবং Conversion (Converter API)

JSF এর ফর্ম এবং ফর্ম প্রসেসিং - জেএসএফ (JSF) - Web Development

230

JavaServer Faces (JSF) ফ্রেমওয়ার্ক ব্যবহারকারীর ইনপুট যাচাই (validation) এবং রূপান্তর (conversion) করার জন্য শক্তিশালী সুবিধা প্রদান করে। JSF Validator এবং Converter API দুটি প্রধান উপাদান, যা এই প্রক্রিয়াগুলো পরিচালনা করতে ব্যবহৃত হয়। ইনপুট ভ্যালিডেশন এবং কনভার্সন নিশ্চিত করে যে, ইউজারদের ইনপুট সঠিক এবং প্রত্যাশিত ফরম্যাটে রয়েছে।

JSF ইনপুট ভ্যালিডেশন


Inpu Validation হলো প্রক্রিয়া যার মাধ্যমে ব্যবহারকারীর ইনপুট যাচাই করা হয় যে এটি সঠিক এবং নির্দিষ্ট শর্ত পূরণ করে কিনা। JSF ফ্রেমওয়ার্কের মাধ্যমে আপনি বিভিন্ন ধরনের ভ্যালিডেটর ব্যবহার করতে পারেন যেমন ফিল্ড লেভেল ভ্যালিডেশন, যেমন ন্যূনতম দৈর্ঘ্য, ফরম্যাট যাচাই ইত্যাদি।

JSF তে ইনপুট ভ্যালিডেশন করার জন্য <f:validateBean>, <h:inputText>, <h:inputText> এর মাধ্যমে বিভিন্ন ভ্যালিডেটর অ্যাট্রিবিউট ব্যবহার করা হয়।

JSF ইনপুট ভ্যালিডেটরের উদাহরণ:

<h:form>
    <h:inputText value="#{userBean.username}" required="true" minlength="5" />
    <h:message for="username" />
</h:form>

এখানে:

  • required="true": ইনপুট ফিল্ডটি অবশ্যই পূর্ণ করতে হবে।
  • minlength="5": ইনপুট ফিল্ডের দৈর্ঘ্য কমপক্ষে ৫টি অক্ষর হতে হবে।

JSF কাস্টম ভ্যালিডেটর


কাস্টম ভ্যালিডেটর ব্যবহার করার জন্য JSF আপনাকে JSR-303 Bean Validation API (যেমন Hibernate Validator) সাপোর্ট দেয়। এই API এর মাধ্যমে আপনি ডোমেইন লজিকের উপর ভিত্তি করে কাস্টম ভ্যালিডেশন তৈরি করতে পারবেন।

কাস্টম ভ্যালিডেটরের উদাহরণ:

@ManagedBean
public class UserBean {
    private String username;
    
    @NotNull(message = "Username cannot be null")
    @Size(min = 5, message = "Username must be at least 5 characters long")
    public String getUsername() {
        return username;
    }
    
    public void setUsername(String username) {
        this.username = username;
    }
}

এখানে:

  • @NotNull: এটি যাচাই করে যে ফিল্ডটি খালি না থাকে।
  • @Size: এটি যাচাই করে যে ফিল্ডের দৈর্ঘ্য কমপক্ষে ৫টি অক্ষর হতে হবে।

JSF কনভার্সন (Converter API)


JSF কনভার্সন ব্যবহৃত হয় ইনপুট ডেটাকে একটি নির্দিষ্ট ফর্ম্যাটে রূপান্তর করার জন্য। সাধারণত, Converter গুলো ব্যবহারকারীর ইনপুট বা মডেল ডেটার মধ্যে রূপান্তর করতে ব্যবহৃত হয়, যেমন স্ট্রিং থেকে ডেটা টাইপে রূপান্তর বা তার বিপরীত।

JSF তে কনভার্সন কাস্টম কনভার্টার ব্যবহার করে করা হয়, যা ফর্ম উপাদান এবং Managed Bean এর মধ্যে ডেটা রূপান্তর করতে সাহায্য করে। Converter ইনপুট ফিল্ডের মানকে নির্দিষ্ট প্রকারের ডেটা টাইপে রূপান্তর করে (যেমন, স্ট্রিং থেকে ডেট বা স্ট্রিং থেকে ইন্টিজার)।

JSF কনভার্টারের উদাহরণ:

import javax.faces.convert.Converter;
import javax.faces.convert.FacesConverter;

@FacesConverter(forClass = Date.class)
public class DateConverter implements Converter {

    @Override
    public Object getAsObject(FacesContext context, UIComponent component, String value) {
        try {
            SimpleDateFormat format = new SimpleDateFormat("dd/MM/yyyy");
            return format.parse(value);
        } catch (ParseException e) {
            return null;
        }
    }

    @Override
    public String getAsString(FacesContext context, UIComponent component, Object value) {
        if (value == null) {
            return "";
        }
        SimpleDateFormat format = new SimpleDateFormat("dd/MM/yyyy");
        return format.format(value);
    }
}

এখানে:

  • @FacesConverter: কনভার্টারটি JSF ফ্রেমওয়ার্কে চিহ্নিত করার জন্য ব্যবহৃত হয়।
  • getAsObject: স্ট্রিং মানকে কাস্টম ডেটা টাইপ (এখানে ডেট) তে রূপান্তর করে।
  • getAsString: কাস্টম ডেটা টাইপকে স্ট্রিং এ রূপান্তর করে।

JSF পেজে কনভার্টার ব্যবহার:

<h:form>
    <h:inputText value="#{userBean.date}" converter="dateConverter" />
</h:form>

এখানে:

  • converter="dateConverter": JSF পেজে কনভার্টার ব্যবহার করতে converter অ্যাট্রিবিউটটি ব্যবহার করা হয়।

সারাংশ


JSF তে Input Validation এবং Converter API ডেটার সঠিকতা এবং প্রক্রিয়া নিশ্চিত করার জন্য গুরুত্বপূর্ণ উপাদান। Input Validation ব্যবহারকারীর ইনপুট যাচাই করতে সাহায্য করে, যেমন required এবং minlength অ্যাট্রিবিউট ব্যবহার করে, এবং Converter API ডেটাকে প্রয়োজনীয় ফরম্যাটে রূপান্তর করার জন্য ব্যবহৃত হয়। কাস্টম ভ্যালিডেটর এবং কনভার্টার তৈরি করার মাধ্যমে আপনি আপনার অ্যাপ্লিকেশনের ইনপুট এবং ডেটা রূপান্তর আরও উন্নত ও কাস্টমাইজড করতে পারেন।

Content added By
Promotion

Are you sure to start over?

Loading...