Struts 2 ফ্রেমওয়ার্কে, Annotation ভিত্তিক Validation হল একটি সহজ এবং আধুনিক পদ্ধতি যা আপনাকে আপনার অ্যাকশন ক্লাসে ডেটা ভ্যালিডেশন যুক্ত করতে সাহায্য করে। Struts 2-এ পূর্বে XML কনফিগারেশনের মাধ্যমে ভ্যালিডেশন কনফিগার করা হত, কিন্তু Annotation ভিত্তিক কনফিগারেশন দ্বারা কোডকে আরও পরিষ্কার এবং সংক্ষিপ্ত করা সম্ভব।
Struts 2 এর Annotation ভিত্তিক Validation এর সুবিধা
- কমপ্লেক্স কনফিগারেশন কমানো: XML কনফিগারেশনের পরিবর্তে, ভ্যালিডেশনকে ডিরেক্টলি অ্যাকশন ক্লাসে ইনলাইন করা যায়।
- সহজ এবং পরিষ্কার: Annotation ব্যবহারে কোডের পাঠযোগ্যতা বাড়ে এবং কোন বাহ্যিক কনফিগারেশন ফাইলের প্রয়োজন হয় না।
- ভাল ডিবাগিং: কারণ ভ্যালিডেশন সরাসরি ক্লাসে যুক্ত থাকে, তাই ডিবাগ করা অনেক সহজ হয়ে যায়।
Struts 2 এর Annotation ভিত্তিক Validation সিস্টেমটি @Validations, @Validation, এবং অন্যান্য বিভিন্ন অ্যনোটেশন ব্যবহার করে কাজ করে।
Struts 2-এ Annotation ভিত্তিক Validation কনফিগারেশন উদাহরণ
এখানে একটি সাধারণ উদাহরণ দেওয়া হলো যেখানে @RequiredFieldValidator, @EmailValidator এবং অন্যান্য ভ্যালিডেশন অ্যনোটেশন ব্যবহার করা হয়েছে।
1. Action Class উদাহরণ
Struts 2-এ Annotation ভিত্তিক Validation কনফিগার করার জন্য আপনাকে প্রথমে অ্যাকশন ক্লাসে প্রয়োজনীয় Validation অ্যনোটেশনগুলো ব্যবহার করতে হবে। নিচে একটি উদাহরণ দেওয়া হল:
package com.example.action;
import com.opensymphony.xwork2.ActionSupport;
import org.apache.struts2.convention.annotation.Action;
import org.apache.struts2.convention.annotation.Result;
import org.apache.struts2.validation.annotations.EmailValidator;
import org.apache.struts2.validation.annotations.RequiredFieldValidator;
public class UserAction extends ActionSupport {
private String username;
private String email;
@RequiredFieldValidator(message = "Username is required.")
private String password;
// Getter and Setter Methods
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
public String getEmail() {
return email;
}
public void setEmail(String email) {
this.email = email;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
@Action(value = "/userAction", results = {
@Result(name = "success", location = "/welcome.jsp"),
@Result(name = "input", location = "/userForm.jsp")
})
public String execute() {
// Perform the action logic
return SUCCESS;
}
}
ব্যাখ্যা:
- @RequiredFieldValidator: এটি নিশ্চিত করে যে
passwordফিল্ডটি খালি থাকবে না। - @EmailValidator: এটি চেক করে যে
emailফিল্ডে একটি সঠিক ইমেইল অ্যাড্রেস আছে কিনা। - @Action: এটি Struts 2-এ অ্যাকশন মেথড কনফিগার করার জন্য ব্যবহৃত হয়। এখানে
SUCCESSরেজাল্টটি/welcome.jspএ রিডাইরেক্ট করে এবংinputরেজাল্টটি/userForm.jspফর্মে রিডাইরেক্ট করে।
2. Validation Configuration
Struts 2 এ ভ্যালিডেশন অ্যনোটেশন সাধারণত Struts 2 Validation Framework এর অংশ হিসেবে ব্যবহৃত হয়, এবং এটি xwork-conversion.properties বা validation.xml ফাইলের সাথে ইন্টিগ্রেট হতে পারে।
তবে, Annotation ভিত্তিক ভ্যালিডেশন কনফিগারেশনের ক্ষেত্রে, আপনাকে আলাদা কোনো কনফিগারেশন ফাইল প্রয়োজন নেই।
3. userForm.jsp (View)
<%@ taglib prefix="s" uri="/struts-tags" %>
<html>
<head>
<title>User Form</title>
</head>
<body>
<h2>User Registration Form</h2>
<s:form action="userAction">
<s:textfield name="username" label="Username" />
<s:password name="password" label="Password" />
<s:textfield name="email" label="Email" />
<s:submit value="Submit" />
</s:form>
</body>
</html>
এখানে, s:form ট্যাগ ব্যবহার করা হয়েছে যা username, password, এবং email ইনপুট ফিল্ডগুলোকে অ্যাকশন ক্লাসের প্রপার্টিতে মাপবে। এই ফর্মটি userAction নামের অ্যাকশন ক্লাসে পাঠানো হবে।
4. welcome.jsp (Success Page)
<%@ taglib prefix="s" uri="/struts-tags" %>
<html>
<head>
<title>Welcome</title>
</head>
<body>
<h2>Welcome, <s:property value="username" /></h2>
</body>
</html>
এখানে, s:property ট্যাগ ব্যবহার করে username প্রপার্টি ভ্যালু ডিসপ্লে করা হচ্ছে, যা UserAction ক্লাস থেকে আসবে।
সাধারণ Validation অ্যনোটেশন
Struts 2-এর Annotation ভিত্তিক Validation-এর মাধ্যমে বিভিন্ন ধরনের ইনপুট ভ্যালিডেশন করা যায়। কিছু সাধারণ ভ্যালিডেশন অ্যনোটেশন:
- @RequiredFieldValidator:
- একটি ফিল্ড খালি থাকতে পারে না।
উদাহরণ:
@RequiredFieldValidator(message = "Username is required.") private String username;
- @EmailValidator:
- একটি বৈধ ইমেইল ঠিকানা চেক করে।
উদাহরণ:
@EmailValidator(message = "Please enter a valid email address.") private String email;
- @RegexFieldValidator:
- একটি কাস্টম রেগুলার এক্সপ্রেশন দিয়ে ভ্যালিডেশন করা।
উদাহরণ:
@RegexFieldValidator(message = "Phone number must be in format (xxx) xxx-xxxx", regex = "\\(\\d{3}\\) \\d{3}-\\d{4}") private String phoneNumber;
- @StringLengthFieldValidator:
- একটি ফিল্ডের দৈর্ঘ্য চেক করা।
উদাহরণ:
@StringLengthFieldValidator(minLength = "6", maxLength = "12", message = "Password length must be between 6 and 12 characters.") private String password;
Struts 2 Validation Flow
- Input ফর্মের ডেটা: ব্যবহারকারী যখন ইনপুট ফর্মে ডেটা প্রদান করে, সেই ডেটা অ্যাকশন ক্লাসে পাঠানো হয়।
- ভ্যালিডেশন: Struts 2 ফ্রেমওয়ার্কে, Annotation ভিত্তিক ভ্যালিডেশন যাত্রা শুরু হয়। যেমন,
@RequiredFieldValidator,@EmailValidatorইত্যাদি। - ফলাফল: যদি কোনো ইনপুট ভুল থাকে (যেমন,
passwordফিল্ড খালি থাকে বাemailভুল থাকে), তাহলে অ্যাকশনটি ERROR রিটার্ন করবে এবং ফর্ম পুনরায় ব্যবহারকারীকে প্রদর্শন করা হবে। - সফল ভ্যালিডেশন: যদি সমস্ত ভ্যালিডেশন সফল হয়, তবে অ্যাকশনটি SUCCESS রিটার্ন করবে এবং সংশ্লিষ্ট রেজাল্ট পেজ (যেমন,
welcome.jsp) প্রদর্শিত হবে।
সারাংশ
Struts 2-এ Annotation ভিত্তিক Validation একটি আধুনিক এবং সহজ পদ্ধতি যা ফর্ম ডেটা ভ্যালিডেশন পরিচালনা করে। @RequiredFieldValidator, @EmailValidator, @StringLengthFieldValidator ইত্যাদি অ্যনোটেশন ব্যবহার করে আপনি অ্যাকশন ক্লাসে সরাসরি ভ্যালিডেশন যুক্ত করতে পারেন। এতে কোডের শুদ্ধতা এবং পাঠযোগ্যতা বৃদ্ধি পায় এবং XML কনফিগারেশন ফাইলের প্রয়োজনীয়তা কমে যায়।
Read more