XML ভিত্তিক Validation কনফিগারেশন

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

268

Struts 2 একটি শক্তিশালী ফ্রেমওয়ার্ক যা MVC (Model-View-Controller) আর্কিটেকচার অনুসরণ করে। Validation বা যাচাই ফিচারটি Struts 2-এ খুবই গুরুত্বপূর্ণ, কারণ এটি ব্যবহারকারীর ইনপুট যাচাই করতে সাহায্য করে, যাতে অপ্রত্যাশিত বা ভুল ডাটা অ্যাপ্লিকেশনে প্রবাহিত না হয়। Struts 2-এ XML ভিত্তিক Validation কনফিগারেশন ব্যবহৃত হয়, যার মাধ্যমে আপনি ইনপুট যাচাই নিয়ম নির্ধারণ করতে পারেন এবং সেই অনুযায়ী অ্যাকশন ক্লাসে প্রয়োজনীয় লজিক প্রয়োগ করতে পারেন।

XML ভিত্তিক Validation কনফিগারেশন

Struts 2-এ validation কনফিগারেশন দুটি স্তরে করা যায়:

  1. Struts Validation (XML-based validation): এই কনফিগারেশনটি struts.xml এবং validation.xml ফাইলে করা হয়, যা Action Class বা Form Bean এর ডাটা যাচাই করতে ব্যবহৃত হয়।
  2. Annotation-based Validation: এটি একটি আধুনিক পদ্ধতি যেখানে Java এন্টিটি বা ক্লাসের প্রপার্টিতে annotations ব্যবহার করা হয়।

এখানে আমরা XML ভিত্তিক Validation কনফিগারেশনের মাধ্যমে Struts 2 Validation ব্যবহারের একটি সম্পূর্ণ উদাহরণ দেখব।


১. Struts 2 Validation XML কনফিগারেশন

১.১. validation.xml ফাইল

validation.xml ফাইলে আপনার অ্যাপ্লিকেশনটির বিভিন্ন ইনপুট ফিল্ডের জন্য যাচাই নিয়ম (validation rules) কনফিগার করা হয়।

এটি সাধারনত src/main/resources ডিরেক্টরিতে থাকে এবং এতে action ক্লাসের form-bean বা action class এর ভ্যালিডেশন নিয়মগুলি উল্লেখ করা হয়।

উদাহরণ: validation.xml কনফিগারেশন

<!DOCTYPE validators PUBLIC "-//Apache Struts//DTD Validator 1.0//EN" "http://struts.apache.org/dtds/struts-validator-1.0.dtd">
<validators>
    <!-- Validation for HelloAction -->
    <field name="name">
        <field-validator type="required">
            <message>Name is required!</message>
        </field-validator>
        <field-validator type="stringlength">
            <param name="min">3</param>
            <param name="max">30</param>
            <message>Name must be between 3 and 30 characters!</message>
        </field-validator>
    </field>

    <field name="email">
        <field-validator type="required">
            <message>Email is required!</message>
        </field-validator>
        <field-validator type="email">
            <message>Please enter a valid email address!</message>
        </field-validator>
    </field>
</validators>

ব্যাখ্যা:

  • name এবং email ফিল্ডের জন্য ভ্যালিডেশন কনফিগার করা হয়েছে।
  • required: এই ফিল্ডটি ফাঁকা থাকতে পারবে না।
  • stringlength: নামের দৈর্ঘ্য ৩ থেকে ৩০ ক্যারেক্টারের মধ্যে হতে হবে।
  • email: এটি একটি বৈধ ইমেইল ফরম্যাট হতে হবে।

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

struts.xml ফাইলটি Struts 2-এর মূল কনফিগারেশন ফাইল, যেখানে অ্যাকশন, রেসাল্ট এবং অন্যান্য কনফিগারেশন সংজ্ঞায়িত হয়। এখানে validation ফাইলটি রেফারেন্স করা হয়।

<struts>
    <package name="default" namespace="/" extends="struts-default">
        <!-- HelloAction class definition -->
        <action name="hello" class="com.example.HelloAction" method="execute">
            <result>/WEB-INF/content/hello.jsp</result>
            <!-- Validation configuration -->
            <interceptor-ref name="defaultStack">
                <param name="validation.enabled">true</param>
            </interceptor-ref>
        </action>
    </package>
</struts>

ব্যাখ্যা:

  • interceptor-ref: এখানে defaultStack ইন্টারসেপ্টরের মাধ্যমে validation.enabled প্যারামিটারটি true করা হয়েছে, যা অ্যাকশন ক্লাসে validation.xml ফাইলের কনফিগারেশন অ্যাক্টিভেট করবে।

২. Action Class কনফিগারেশন

Action class-এ ValidationAware ইন্টারফেস ইমপ্লিমেন্ট করলে, আপনি addFieldError(), addActionError() ইত্যাদি মেথড ব্যবহার করে কাস্টম এরর মেসেজ প্রদান করতে পারবেন।

উদাহরণ: Action Class

package com.example;

import com.opensymphony.xwork2.ActionSupport;

public class HelloAction extends ActionSupport {

    private String name;
    private String email;

    // Getters and setters
    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;
    }

    @Override
    public String execute() {
        // Business logic here
        return SUCCESS;
    }

    // Custom validation method
    @Override
    public void validate() {
        if (name == null || name.trim().isEmpty()) {
            addFieldError("name", "Name cannot be empty.");
        }
        if (email == null || email.trim().isEmpty()) {
            addFieldError("email", "Email cannot be empty.");
        }
    }
}

ব্যাখ্যা:

  • validate(): এই মেথডে আপনি কাস্টম ভ্যালিডেশন যুক্ত করতে পারেন। উদাহরণস্বরূপ, যদি নাম বা ইমেইল ফাঁকা থাকে, তবে addFieldError() মেথড ব্যবহার করে একটি ত্রুটি বার্তা যোগ করা হবে।
  • addFieldError(): এই মেথড ব্যবহার করে আপনি নির্দিষ্ট ফিল্ডে ত্রুটি বার্তা যোগ করতে পারবেন।

৩. JSP পেজে Validation Error দেখানো

JSP পেজে Struts 2 tags ব্যবহার করে আপনি ভ্যালিডেশন এররগুলি প্রদর্শন করতে পারেন।

উদাহরণ: JSP পেজ

<!-- hello.jsp -->
<html>
    <body>
        <h2>Enter your details</h2>
        <s:form action="hello" method="post">
            <s:textfield name="name" label="Name"/>
            <s:textfield name="email" label="Email"/>
            <s:submit value="Submit"/>

            <!-- Display validation errors -->
            <s:fielderror fieldName="name"/>
            <s:fielderror fieldName="email"/>
        </s:form>
    </body>
</html>

ব্যাখ্যা:

  • s:fielderror: এই ট্যাগটি নির্দিষ্ট ফিল্ডের জন্য ত্রুটি বার্তা প্রদর্শন করে। যদি name বা email ফিল্ডে ত্রুটি থাকে, তবে সেই ত্রুটির বার্তা এখানে দেখানো হবে।

৪. Struts 2 Validation Features

  • Declarative Validation: Struts 2-এ XML ফাইলের মাধ্যমে আপনি ফিল্ড এবং অ্যাকশন লেভেলে ভ্যালিডেশন কনফিগার করতে পারেন।
  • Custom Validation: আপনি কাস্টম ভ্যালিডেশন মেথড লিখে আরও জটিল ভ্যালিডেশন লজিক প্রয়োগ করতে পারেন।
  • Error Handling: Struts 2 ত্রুটি গুলি actionError বা fieldError এর মাধ্যমে সঠিকভাবে হ্যান্ডল করতে সহায়তা করে।

সারাংশ

  • Struts 2 Validation XML ভিত্তিক কনফিগারেশন এবং অ্যাকশন ক্লাসের মাধ্যমে ডাটা ভ্যালিডেশন প্রক্রিয়াকে পরিচালনা করে।
  • validation.xml ফাইলে আপনি প্রতিটি ফিল্ডের জন্য যাচাই নিয়ম সেট করতে পারেন এবং struts.xml ফাইলে এই কনফিগারেশন রেফারেন্স করা হয়।
  • Action classvalidate() মেথডের মাধ্যমে কাস্টম ভ্যালিডেশন লজিক যুক্ত করা যায়।
  • JSP পেজে Struts 2 tags ব্যবহার করে ত্রুটি বার্তা সুন্দরভাবে প্রদর্শন করা যায়।

Struts 2 এ XML ভিত্তিক ভ্যালিডেশন ব্যবহার করা সহজ এবং কার্যকর, যা ডাটার সঠিকতা এবং অ্যাপ্লিকেশনের নিরাপত্তা নিশ্চিত করতে সহায়তা করে।

Content added By
Promotion

Are you sure to start over?

Loading...