Tapestry ফ্রেমওয়ার্কে form submission এবং server-side processing কার্যকরভাবে পরিচালনা করা হয়। এটি form components এবং action methods ব্যবহার করে ফর্ম ডেটা প্রক্রিয়া এবং সাবমিট করে। এর মাধ্যমে আপনি ব্যবহারকারীদের ইনপুট গ্রহণ, ডেটা ভ্যালিডেশন, এবং সার্ভার সাইড প্রক্রিয়াকরণ করতে পারেন।
এই টিউটোরিয়ালে, আমরা দেখব কীভাবে Tapestry তে একটি ফর্ম সাবমিট করা হয় এবং তারপরে সার্ভার সাইডে ডেটা প্রক্রিয়া করা হয়।
প্রথমে একটি ফর্ম তৈরি করা হবে যাতে ব্যবহারকারী কিছু ইনপুট প্রদান করতে পারে। এখানে একটি সাধারণ login form তৈরি করা হবে।
<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" />
<!-- Login Button -->
<t:button t:id="loginButton" value="Login" />
</t:form>
</body>
</html>
এখানে:
ফর্মটি যখন সাবমিট হবে, তখন Tapestry একটি action method কল করবে, যেখানে ডেটা প্রক্রিয়া এবং অন্যান্য কাজ করা যাবে। ফর্মের ডেটা প্রসেস করার জন্য আমরা একটি Java ক্লাস ব্যবহার করব।
package com.example.pages;
import org.apache.tapestry5.annotations.Property;
import org.apache.tapestry5.annotations.SessionState;
public class Login {
@Property
private String username; // Username field
@Property
private String password; // Password field
// Action method for form submission
public Object onSuccessFromLoginForm() {
if ("admin".equals(username) && "password".equals(password)) {
// Redirect to Home page if login is successful
return Home.class;
} else {
// Stay on the login page if login fails
return Login.class;
}
}
}
এখানে:
Tapestry এর নিজস্ব ভ্যালিডেশন ফ্রেমওয়ার্ক রয়েছে, যা ডেটার ভ্যালিডেশন করতে সাহায্য করে। আপনি ফর্ম ডেটার উপর কাস্টম ভ্যালিডেশন যোগ করতে পারেন।
package com.example.pages;
import org.apache.tapestry5.annotations.Property;
import org.apache.tapestry5.validator.annotations.Length;
public class Login {
@Property
@Length(min = 5, message = "Username must be at least 5 characters")
private String username; // Username field
@Property
@Length(min = 6, message = "Password must be at least 6 characters")
private String password; // Password field
// Action method for form submission
public Object onSuccessFromLoginForm() {
if ("admin".equals(username) && "password".equals(password)) {
// Redirect to Home page if login is successful
return Home.class;
} else {
// Stay on the login page if login fails
return Login.class;
}
}
}
এখানে:
ফর্মটি যখন সাবমিট হয়, তখন onSuccessFromLoginForm() মেথডটি কল হবে। এই মেথডে:
এছাড়া, আপনি onFailure এবং onSuccess মেথডগুলো ব্যবহার করে ফর্মের সাবমিশন প্রসেসে আরো কাস্টম কার্যাবলী যোগ করতে পারেন, যেমন ত্রুটি বার্তা প্রদর্শন বা লগিং।
Tapestry তে ফর্ম সাবমিশন এবং সার্ভার সাইড প্রসেসিং খুবই সহজ এবং কার্যকর। t:form, t:textfield, t:passwordfield, t:button কম্পোনেন্ট ব্যবহার করে ফর্ম তৈরি করা হয় এবং action methods ব্যবহার করে ডেটা প্রক্রিয়া করা হয়। Tapestry এর ফর্ম ভ্যালিডেশন ফিচার সহ, আপনি ডেটার জন্য কাস্টম ভ্যালিডেশন যোগ করতে পারেন, যাতে ব্যবহারকারী ইনপুট সঠিক এবং নির্ভুল থাকে।