Form Component এর সাথে কাজ করা

Web Development - অ্যাপাচি ট্যাপেস্ট্রি (Apache Tapestry) - Tapestry এর ফর্ম এবং Validation |

Tapestry ফ্রেমওয়ার্কে form component ব্যবহার করে ব্যবহারকারীদের ইনপুট গ্রহণ করা এবং তা প্রসেস করা সহজ এবং কার্যকর। Tapestry তে ফর্ম কম্পোনেন্টগুলি UI কম্পোনেন্টস যেমন textfields, buttons, checkboxes এবং submit actions অন্তর্ভুক্ত থাকে, যা ফর্ম ডেটা সংগ্রহ এবং প্রক্রিয়াকরণে সহায়তা করে।

এই টিউটোরিয়ালে, আমরা দেখব কীভাবে Tapestry তে ফর্ম কম্পোনেন্ট ব্যবহার করে ডেটা সংগ্রহ করা এবং তা প্রক্রিয়াকরণ করা যায়।


Tapestry Form Components

Tapestry ফ্রেমওয়ার্কে ফর্ম কম্পোনেন্টগুলি t:form, t:textfield, t:passwordfield, t:checkbox, t:button, t:select ইত্যাদি অন্তর্ভুক্ত থাকে। এই কম্পোনেন্টগুলোর মাধ্যমে আপনি সহজে ফর্ম তৈরি করতে পারেন।


ধাপ ১: Tapestry ফর্ম তৈরি

ধরা যাক, আপনি একটি login form তৈরি করতে চান, যেখানে ব্যবহারকারী username এবং password প্রদান করবেন এবং একটি login বাটনে ক্লিক করে লগইন করবেন।

  1. HTML টেমপ্লেট (login.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>
    </body>
</html>

এখানে:

  • t:form: এটি একটি ফর্ম তৈরি করে, যা ব্যবহারকারীর ইনপুট গ্রহণের জন্য ব্যবহৃত হয়।
  • t:textfield: এটি একটি টেক্সট ফিল্ড তৈরি করে যা ব্যবহারকারীকে username ইনপুট করতে দেয়।
  • t:passwordfield: এটি একটি পাসওয়ার্ড ফিল্ড তৈরি করে, যেখানে ইনপুট হিডেন থাকে।
  • t:checkbox: এটি একটি চেকবক্স তৈরি করে, যেখানে ব্যবহারকারী Remember Me চেক করতে পারেন।
  • t:button: এটি একটি বাটন তৈরি করে, যা ব্যবহারকারীকে লগইন করার জন্য ক্লিক করতে দেয়।

ধাপ ২: Java ক্লাস তৈরি করা

এখন, ফর্মের ডেটা প্রক্রিয়া এবং সঠিকভাবে ব্যবহারকারীর ইনপুট গ্রহণ করার জন্য একটি Java ক্লাস তৈরি করতে হবে। এই Java ক্লাসে Tapestry-এর ইনপুট ডেটা প্রক্রিয়াকরণ করা হয়।

  1. Java ক্লাস (Login.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

    @Property
    private boolean rememberMe;  // Checkbox for remember me option

    // Action to be performed when the form is successfully submitted
    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 credentials are incorrect
            return Login.class;
        }
    }
}

এখানে:

  • @Property: Tapestry অটোমেটিকভাবে username, password, এবং rememberMe ভ্যালু গুলি ম্যানেজ করবে। যখন ব্যবহারকারী ফর্মটি সাবমিট করেন, Tapestry এগুলিকে Java ক্লাসের প্রপার্টির সাথে বাইনড করবে।
  • onSuccessFromLoginForm(): ফর্মটি সফলভাবে সাবমিট হলে, এই মেথডটি কল হবে। এখানে আপনি লগইন যাচাই করবেন এবং সঠিক হলে হোম পেজে রিডাইরেক্ট করবেন। অন্যথায়, লগইন পেজে ফিরে আসবেন।

ধাপ ৩: ফর্মের ভ্যালিডেশন

Tapestry আপনাকে ভ্যালিডেশন ফিচার সরবরাহ করে, যা ফর্ম ডেটা যাচাই করতে সহায়তা করে। আপনি Tapestry-এর বিল্ট-ইন data validation ফিচার ব্যবহার করতে পারেন।

  1. Java ক্লাসে ভ্যালিডেশন যোগ করা:
package com.example.pages;

import org.apache.tapestry5.annotations.Property;
import org.apache.tapestry5.annotations.SessionState;
import org.apache.tapestry5.validator.annotations.Length;

public class Login {
    @Property
    @Length(min = 5, message = "Username must be at least 5 characters long")
    private String username;  // Username field

    @Property
    @Length(min = 6, message = "Password must be at least 6 characters long")
    private String password;  // Password field

    @Property
    private boolean rememberMe;  // Checkbox for remember me option

    // 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;
        }
    }
}

এখানে:

  • @Length: এটি username এবং password ফিল্ডের জন্য মিনিমাম লেন্থ যাচাই করছে। যদি ব্যবহারকারী কমপক্ষে ৫টি অক্ষর username এবং ৬টি অক্ষর password প্রদান না করে, তবে message দেখানো হবে।

ধাপ ৪: ফর্মের সাবমিশন এবং রেসপন্স

ফর্ম ডেটা সাবমিট হওয়ার পরে, আপনি Tapestry তে action methods ব্যবহার করে ডেটা প্রসেস করতে পারেন এবং তার উপর ভিত্তি করে রেসপন্স প্রদান করতে পারেন।

  1. ফর্মের সাবমিশন: ব্যবহারকারী Login বাটনে ক্লিক করলে, ফর্মটি সাবমিট হবে এবং তারপরে onSuccessFromLoginForm() মেথডটি কল হবে।
  2. রিডাইরেকশন: যদি লগইন সফল হয়, ব্যবহারকারীকে Home পেজে রিডাইরেক্ট করা হবে। অন্যথায়, Login পেজে ফিরে আসবে।

সারাংশ

Tapestry ফ্রেমওয়ার্কে form components ব্যবহার করা খুবই সহজ এবং ডাইনামিক। t:form, t:textfield, t:passwordfield, t:checkbox, এবং t:button কম্পোনেন্ট ব্যবহার করে আপনি দ্রুত ফর্ম তৈরি করতে পারেন এবং Tapestry এর অটোমেটিক data binding এবং validation ফিচার ব্যবহার করে ইনপুট ডেটা প্রক্রিয়া করতে পারেন। Tapestry ফর্ম কম্পোনেন্টগুলির মাধ্যমে ইউজার ইন্টারফেস এবং ব্যাকএন্ড লজিকের মধ্যে একটি পরিষ্কার এবং কার্যকর সংযোগ তৈরি করা যায়।

Content added By
Promotion