Struts 2 Validation Framework একটি গুরুত্বপূর্ণ কম্পোনেন্ট যা Struts 2 অ্যাপ্লিকেশনগুলিতে ব্যবহারকারীর ইনপুটের বৈধতা পরীক্ষা (validation) করার জন্য ব্যবহৃত হয়। এটি ব্যবহারকারীর ইনপুট যাচাই করে এবং যদি কোনো ভুল বা অবৈধ তথ্য পাওয়া যায়, তবে তা প্রদর্শন করার ব্যবস্থা করে। Validation ফ্রেমওয়ার্ক ব্যবহার করে আপনি আপনার ফর্মের ডেটার সঠিকতা এবং নির্ভরযোগ্যতা নিশ্চিত করতে পারেন।
Struts 2 Validation Framework অনেক ধরণের ভ্যালিডেশন পদ্ধতি সাপোর্ট করে যেমন:
- শুধু প্রয়োজনীয় ক্ষেত্রগুলি পূর্ণ করা (Required fields)
- ইমেইল ঠিকানা ফরম্যাট (Email format)
- সংখ্যার পরিসীমা পরীক্ষা (Range checking)
- পারমিটেড মান যাচাই (Allowed values)
- কাস্টম ভ্যালিডেশন (Custom validation)
এটি XML-based configuration এবং annotation-based validation এর মাধ্যমে কার্যকরী হতে পারে।
Struts 2 Validation Framework এর বৈশিষ্ট্য
- Declarative Validation: Struts 2-এ আপনি Validation কনফিগারেশনটি
struts.xmlবা Annotation ব্যবহার করে declaratively বা ডিক্লেয়ারেটিভভাবে করতে পারেন। - Custom Validation: আপনি আপনার নিজস্ব কাস্টম ভ্যালিডেশন কন্ডিশন তৈরি করতে পারেন যা আপনার নির্দিষ্ট প্রয়োজনের ভিত্তিতে কাজ করবে।
- Built-in Validators: Struts 2 বিভিন্ন built-in ভ্যালিডেটর প্রদান করে যেমন
required,email,regex,range,integer, ইত্যাদি। - Action Support: Validation Framework অ্যাকশন ক্লাসের সাথে ইন্টিগ্রেটেডভাবে কাজ করে, যেখানে আপনি ইনপুটের মান যাচাই করে ফলাফল অনুযায়ী ইউজারকে রেসপন্স পাঠাতে পারবেন।
- Error Message Management: যদি কোনো ভ্যালিডেশন ফেইল হয়, তবে সংশ্লিষ্ট ত্রুটি বার্তা প্রদর্শিত হয়, এবং সেই বার্তাগুলি বিভিন্ন ভাষায় লোকালাইজ করা সম্ভব।
Struts 2 Validation Framework এর প্রয়োগ
Struts 2 Validation Framework ব্যবহার করার জন্য মূলত দুইটি পদ্ধতি রয়েছে:
- XML-based Validation Configuration
- Annotation-based Validation
এখন আমরা দুটি পদ্ধতির উদাহরণ সহ Validation Framework কিভাবে ব্যবহার করা হয় তা দেখবো।
১. XML-based Validation Configuration
Struts 2-এ XML-based validation কনফিগারেশন ব্যবহার করে আপনি ফর্মের বিভিন্ন ফিল্ডের জন্য ভ্যালিডেশন রুলস (validation rules) নির্ধারণ করতে পারেন।
উদাহরণ:
Action Class (GreetingAction.java)
import com.opensymphony.xwork2.ActionSupport;
public class GreetingAction extends ActionSupport {
private String name;
private int age;
public String execute() {
return SUCCESS;
}
// Getter and Setter Methods
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
}
Validation Configuration (struts.xml)
<struts>
<package name="default" extends="struts-default">
<action name="greetUser" class="com.example.GreetingAction" method="execute">
<result>/greeting.jsp</result>
<!-- Validation rules -->
<validation>
<field name="name">
<field-validator type="required">
<message>Name is required.</message>
</field-validator>
<field-validator type="string">
<message>Name must be a valid string.</message>
</field-validator>
</field>
<field name="age">
<field-validator type="required">
<message>Age is required.</message>
</field-validator>
<field-validator type="integer">
<message>Age must be a valid integer.</message>
</field-validator>
</field>
</validation>
</action>
</package>
</struts>
ব্যাখ্যা:
- Validation Block:
struts.xmlফাইলে validation ব্লক ব্যবহার করেnameএবংageফিল্ডের জন্য ভ্যালিডেশন রুলস নির্ধারণ করা হয়েছে। - Field Validators: এখানে
requiredএবংstring,integerটাইপের ভ্যালিডেটর ব্যবহার করা হয়েছে। - Error Messages: যদি ভ্যালিডেশন ফেইল করে, তাহলে ট্যাগের মাধ্যমে সংশ্লিষ্ট ত্রুটি বার্তা প্রদর্শিত হবে।
JSP File (greeting.jsp)
<%@ taglib uri="/struts-tags" prefix="s" %>
<html>
<body>
<h2>Welcome, <s:property value="name"/>!</h2>
<p>Age: <s:property value="age"/> years</p>
<!-- Error messages -->
<s:fielderror fieldName="name"/>
<s:fielderror fieldName="age"/>
</body>
</html>
এখানে s:fielderror ট্যাগ ব্যবহার করে আমরা name এবং age ফিল্ডের জন্য ত্রুটি বার্তা প্রদর্শন করেছি।
২. Annotation-based Validation
Struts 2-এ Annotation-based validation ব্যবহার করে আপনি কম কোডে ভ্যালিডেশন কনফিগার করতে পারেন। এখানে @Validations এবং @FieldValidation অ্যনোটেশন ব্যবহার করা হয়।
উদাহরণ:
Action Class with Validation Annotations
import com.opensymphony.xwork2.ActionSupport;
import org.apache.struts2.convention.annotation.*;
@Validation
public class GreetingAction extends ActionSupport {
private String name;
private int age;
public String execute() {
return SUCCESS;
}
// Getter and Setter Methods
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
// Validation Annotations
@FieldValidator(type = "required", message = "Name is required.")
public String getName() {
return name;
}
@FieldValidator(type = "integer", message = "Age must be an integer.")
@FieldValidator(type = "required", message = "Age is required.")
public int getAge() {
return age;
}
}
এখানে, @FieldValidator অ্যনোটেশন ব্যবহার করে আপনি name এবং age ফিল্ডের জন্য ভ্যালিডেশন রুলস নির্ধারণ করতে পারেন।
সারাংশ
Struts 2 Validation Framework একটি শক্তিশালী এবং নমনীয় সিস্টেম যা ইনপুট ভ্যালিডেশন পরিচালনা করতে সহায়ক। এটি XML কনফিগারেশন এবং অ্যনোটেশন ব্যবহারের মাধ্যমে কাজ করে এবং ফর্ম ডেটা যাচাই করার জন্য অনেক ধরনের বিল্ট-ইন ভ্যালিডেটর প্রদান করে। Declarative Validation এবং Custom Validation এর মাধ্যমে আপনি আপনার অ্যাপ্লিকেশনের ডেটার সঠিকতা নিশ্চিত করতে পারেন এবং ইনপুট ফর্মগুলিতে ভুল ডেটা এন্ট্রি থেকে রক্ষা পেতে পারেন।
Read more