উদাহরণ সহ Validation Framework এর ব্যবহার

truts 2 এর Validation Framework - স্ট্রাটস (Struts 2) - Java Technologies

281

Struts 2 একটি শক্তিশালী MVC ফ্রেমওয়ার্ক, যা ডেটা ভ্যালিডেশন পরিচালনা করার জন্য Validation Framework সরবরাহ করে। Struts 2 এর Validation Framework ব্যবহার করে আপনি ইউজারের ইনপুটকে যাচাই করতে পারেন এবং নিশ্চিত করতে পারেন যে ইনপুটগুলি সঠিক এবং নিরাপদ। এই ফ্রেমওয়ার্কের মাধ্যমে আপনি সার্ভার সাইড ভ্যালিডেশন, যেমন ফিল্ড লেভেল ভ্যালিডেশন এবং কাস্টম ভ্যালিডেশন, সহজে বাস্তবায়ন করতে পারেন।

Struts 2 Validation Framework মূলত annotation-based validation এবং XML configuration এর মাধ্যমে কাজ করে। এটি Action Class এবং struts.xml কনফিগারেশন ফাইলে নির্ধারিত হয়।


1. Struts 2 Validation Framework: কিভাবে কাজ করে?

Struts 2 তে ভ্যালিডেশন সাধারণত ValidationInterceptor ব্যবহার করে পরিচালিত হয়, যা ইনপুট ভ্যালিডেশন নিশ্চিত করার জন্য ব্যবহৃত হয়। আপনি action ক্লাসে ভ্যালিডেশন মেথড যোগ করতে পারেন অথবা struts.xml ফাইলে কনফিগারেশন করতে পারেন।

2. Struts 2 Validation Framework: উদাহরণসহ

এই উদাহরণে আমরা একটি সাধারণ ইউজার ফর্ম তৈরি করবো, যেখানে ব্যবহারকারীর নাম এবং ইমেইল ঠিক আছে কিনা তা যাচাই করা হবে।

১. Action Class (UserAction)

import com.opensymphony.xwork2.ActionSupport;
import org.apache.struts2.interceptor.validation.SkipValidation;

public class UserAction extends ActionSupport {
    private String name;
    private String email;

    // Getter and Setter methods
    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public String getEmail() {
        return email;
    }

    public void setEmail(String email) {
        this.email = email;
    }

    // Validation method
    @Override
    public void validate() {
        if (name == null || name.trim().isEmpty()) {
            addFieldError("name", "Name is required.");
        }
        if (email == null || email.trim().isEmpty()) {
            addFieldError("email", "Email is required.");
        } else if (!email.matches("[a-zA-Z0-9_+&*-]+(?:\\.[a-zA-Z0-9_+&*-]+)*@(?:[a-zA-Z0-9-]+\\.)+[a-zA-Z]{2,7}")) {
            addFieldError("email", "Invalid email format.");
        }
    }

    // Execute method
    public String execute() {
        return SUCCESS;
    }
}

ব্যাখ্যা:

  • validate() মেথডটি Struts 2 Validation Framework তে ব্যবহার করা হয়। এটি ইনপুটের ভ্যালিডেশন সম্পাদন করে এবং addFieldError() ব্যবহার করে ভুল ইনপুটের জন্য ত্রুটি বার্তা যোগ করা হয়।
  • এখানে name এবং email ক্ষেত্রের জন্য ভ্যালিডেশন করা হয়েছে। name ফিল্ড যদি খালি থাকে তবে ত্রুটি বার্তা দেখানো হবে এবং email ফিল্ডের জন্য একটি ইমেইল প্যাটার্ন চেক করা হয়েছে।

২. JSP (View Layer) তৈরি করুন

<s:form action="userAction">
    <s:textfield name="name" label="Name" />
    <s:textfield name="email" label="Email" />
    <s:submit value="Submit" />
</s:form>

<s:actionmessage />
<s:actionerror />

ব্যাখ্যা:

  • s:form ট্যাগ দিয়ে একটি ফর্ম তৈরি করা হয়েছে যা UserAction এর execute() মেথডকে কল করবে।
  • s:textfield ট্যাগ দিয়ে ইউজারের নাম এবং ইমেইল ইনপুট ফিল্ড তৈরি করা হয়েছে।
  • s:actionmessage এবং s:actionerror ট্যাগ ব্যবহার করে আমরা ত্রুটি বার্তা বা সফল বার্তা প্রদর্শন করতে পারি।

৩. struts.xml কনফিগারেশন

<package name="default" extends="struts-default">
    <action name="userAction" class="com.example.UserAction" method="execute">
        <result name="success">/success.jsp</result>
        <result name="input">/input.jsp</result>
    </action>
</package>

ব্যাখ্যা:

  • struts.xml ফাইলে userAction নামের একটি অ্যাকশন কনফিগার করা হয়েছে যা UserAction ক্লাসের execute() মেথডকে কল করবে।
  • success.jsp এবং input.jsp ফাইলটি রিটার্ন হবে SUCCESS এবং INPUT ফলস্বরূপ।

৪. Validation Configuration (struts-validation.xml)

Struts 2 তে, আপনি যদি XML ভিত্তিক কনফিগারেশন ব্যবহার করতে চান, তাহলে struts-validation.xml ফাইল তৈরি করতে পারেন।

<validators>
    <field name="name">
        <field-validator type="required">
            <message>Name is required.</message>
        </field-validator>
    </field>

    <field name="email">
        <field-validator type="required">
            <message>Email is required.</message>
        </field-validator>
        <field-validator type="regex">
            <param name="regex">[a-zA-Z0-9_+&*-]+(?:\\.[a-zA-Z0-9_+&*-]+)*@(?:[a-zA-Z0-9-]+\\.)+[a-zA-Z]{2,7}</param>
            <message>Invalid email format.</message>
        </field-validator>
    </field>
</validators>

ব্যাখ্যা:

  • struts-validation.xml ফাইলে আপনি name এবং email ফিল্ডের জন্য ভ্যালিডেশন নির্ধারণ করতে পারেন।
  • required ভ্যালিডেটরটি নিশ্চিত করে যে name এবং email ফিল্ড খালি না থাকে।
  • email ফিল্ডের জন্য একটি regex ভ্যালিডেটর ব্যবহার করা হয়েছে, যা ইমেইল ফরম্যাট চেক করবে।

5. Annotation-Based Validation

Struts 2 তে আপনি annotations ব্যবহার করে ভ্যালিডেশন কনফিগারেশন করতে পারেন। এটি struts-validation.xml ফাইলের পরিবর্তে কোডের মাধ্যমে ভ্যালিডেশন পরিচালনা করার একটি সহজ উপায়।

উদাহরণ:

import com.opensymphony.xwork2.validator.annotations.RequiredFieldValidator;
import com.opensymphony.xwork2.validator.annotations.EmailValidator;

public class UserAction extends ActionSupport {
    private String name;
    private String email;

    @RequiredFieldValidator(message = "Name is required.")
    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    @RequiredFieldValidator(message = "Email is required.")
    @EmailValidator(message = "Invalid email format.")
    public String getEmail() {
        return email;
    }

    public void setEmail(String email) {
        this.email = email;
    }

    public String execute() {
        return SUCCESS;
    }
}

ব্যাখ্যা:

  • @RequiredFieldValidator ব্যবহার করে আমরা name এবং email ফিল্ডে ভ্যালিডেশন নির্ধারণ করেছি।
  • @EmailValidator ব্যবহার করে ইমেইল ফরম্যাট চেক করা হয়েছে।

সারাংশ

Struts 2 এর Validation Framework খুবই সহজ এবং শক্তিশালী, যা আপনাকে ইউজারের ইনপুট যাচাই করতে সহায়ক হয়। আপনি Action Class এর মাধ্যমে ভ্যালিডেশন মেথড তৈরি করতে পারেন অথবা XML Configuration বা Annotations ব্যবহার করে ভ্যালিডেশন নির্ধারণ করতে পারেন। এই ফ্রেমওয়ার্কটি ডেটা এক্সপেক্টেশন এবং নিরাপত্তা নিশ্চিত করতে খুবই উপকারী।

Content added By
Promotion

Are you sure to start over?

Loading...