Apache Tapestry-এর Validation Framework আপনাকে বিভিন্ন ধরণের ডেটা যাচাই করার সুবিধা প্রদান করে, যেমন ফর্ম ইনপুট এর সঠিকতা যাচাই করা। Tapestry ফ্রেমওয়ার্কে আপনি Custom Validation তৈরি করতে পারেন, যা ব্যবহারকারী ইনপুট অনুযায়ী আপনার নির্দিষ্ট কাস্টম রুলস অনুসারে ডেটা যাচাই করবে।
এখানে আমরা Custom Validation তৈরি করার পদ্ধতি সম্পর্কে আলোচনা করব।
Tapestry-তে Custom Validation তৈরি করতে, প্রথমে আপনাকে একটি Validator Class তৈরি করতে হবে যা Validator
ইন্টারফেস বা @Validate এনোটেশন ব্যবহার করবে।
Custom Validator Class তৈরি করতে নিচের ধাপগুলো অনুসরণ করুন:
Custom Validator Interface তৈরি করা
Tapestry আপনাকে নিজের কাস্টম ভ্যালিডেশন তৈরি করার জন্য একটি interface প্রদান করে যার মাধ্যমে আপনি নির্দিষ্ট ভ্যালিডেশন রুল তৈরি করতে পারবেন।
package com.example.validators;
import org.apache.tapestry5.Validator;
import org.apache.tapestry5.ValidationException;
import org.apache.tapestry5.annotations.Validate;
public class UsernameValidator implements Validator<String> {
@Override
public void validate(String value) throws ValidationException {
if (value == null || value.trim().isEmpty()) {
throw new ValidationException("Username cannot be empty.");
}
if (value.length() < 5) {
throw new ValidationException("Username must be at least 5 characters long.");
}
if (value.contains(" ")) {
throw new ValidationException("Username cannot contain spaces.");
}
}
}
এখানে:
এখন আমরা Login ফর্মের username ফিল্ডে এই কাস্টম ভ্যালিডেশন প্রয়োগ করব।
package com.example.pages;
import org.apache.tapestry5.annotations.Property;
import org.apache.tapestry5.annotations.Validate;
import org.apache.tapestry5.ioc.annotations.Inject;
import com.example.validators.UsernameValidator;
public class Login {
@Property
@Validate("usernameValidator")
private String username; // Username field
@Property
private String password; // Password field
@Property
private boolean rememberMe; // Remember Me checkbox
// Action to be performed when the form is successfully submitted
public Object onSuccessFromLoginForm() {
if ("admin".equals(username) && "password".equals(password)) {
return Home.class;
} else {
return Login.class;
}
}
}
এখানে:
এখন, আমাদের ফর্মের TML টেমপ্লেট ফাইলের মাধ্যমে ভ্যালিডেশন বার্তা দেখাতে হবে।
login.tml (TML ফাইল):
<html xmlns:t="http://tapestry.apache.org/schema/tapestry_5_3.xsd">
<head>
<title>Login Form</title>
</head>
<body>
<h2>Login</h2>
<!-- Form Tag -->
<t:form t:id="loginForm">
<t:label value="Username" for="username"/>
<t:textfield t:id="username" value="username"/>
<t:label value="Password" for="password"/>
<t:passwordfield t:id="password" value="password"/>
<t:checkbox t:id="rememberMe" value="rememberMe" label="Remember Me" />
<!-- Login Button -->
<t:button t:id="loginButton" value="Login"/>
</t:form>
<!-- Displaying validation error messages -->
<t:if test="username.validator.hasErrors">
<div style="color: red;">
<t:message from="username" />
</div>
</t:if>
</body>
</html>
এখানে:
<t:message>
: এই ট্যাগটি ব্যবহারকারীর ইনপুটের জন্য সংশ্লিষ্ট ভ্যালিডেশন ত্রুটি বার্তা দেখাতে ব্যবহৃত হয়। এখানে username ইনপুটের জন্য কোনো ত্রুটি হলে, এটি ত্রুটি বার্তা প্রদর্শন করবে।<t:if>
: এটি একটি কন্ডিশনাল ট্যাগ, যা ভ্যালিডেশন ত্রুটি থাকলে ত্রুটি বার্তা প্রদর্শন করবে।Tapestry-তে Custom Validation আরও উন্নত করতে, আপনি multiple constraints এবং Complex Validation প্রয়োগ করতে পারেন, যেমন:
এছাড়া আপনি custom validation annotations তৈরি করে, অন্যান্য ফিল্ডগুলিতেও এই কাস্টম ভ্যালিডেশন প্রয়োগ করতে পারেন।
Tapestry ফ্রেমওয়ার্কে Custom Validation তৈরি করা সহজ এবং কার্যকর। @Validate
এনোটেশন এবং Validator Interface ব্যবহার করে আপনি আপনার নিজস্ব ভ্যালিডেশন রুল তৈরি করতে পারেন, যা ফর্ম ডেটা যাচাই করতে সহায়ক। Tapestry Validation Framework এর মাধ্যমে আপনি দ্রুত এবং পরিষ্কারভাবে ফর্মের ভ্যালিডেশন করতে পারবেন, এবং কাস্টম ভ্যালিডেশন ব্যবহার করে আপনাদের প্রয়োজনীয় নির্দিষ্ট চেক করতে পারবেন।
Read more