Form এর সাবমিশন এবং সার্ভার সাইড প্রসেসিং

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

Tapestry ফ্রেমওয়ার্কে form submission এবং server-side processing কার্যকরভাবে পরিচালনা করা হয়। এটি form components এবং action methods ব্যবহার করে ফর্ম ডেটা প্রক্রিয়া এবং সাবমিট করে। এর মাধ্যমে আপনি ব্যবহারকারীদের ইনপুট গ্রহণ, ডেটা ভ্যালিডেশন, এবং সার্ভার সাইড প্রক্রিয়াকরণ করতে পারেন।

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


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

প্রথমে একটি ফর্ম তৈরি করা হবে যাতে ব্যবহারকারী কিছু ইনপুট প্রদান করতে পারে। এখানে একটি সাধারণ login form তৈরি করা হবে।

  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" />

            <!-- Login Button -->
            <t:button t:id="loginButton" value="Login" />
        </t:form>
    </body>
</html>

এখানে:

  • t:form: এটি ফর্মের জন্য Tapestry কম্পোনেন্ট যা ইনপুট ডেটা সংগ্রহ করে।
  • t:textfield: এটি একটি টেক্সট ফিল্ড তৈরি করে যেখানে ব্যবহারকারী username প্রদান করবে।
  • t:passwordfield: এটি একটি পাসওয়ার্ড ফিল্ড তৈরি করে, যেখানে ব্যবহারকারী password প্রদান করবে।
  • t:button: এটি একটি সাবমিট বাটন তৈরি করে।

ধাপ ২: সার্ভার সাইড প্রসেসিং

ফর্মটি যখন সাবমিট হবে, তখন Tapestry একটি action method কল করবে, যেখানে ডেটা প্রক্রিয়া এবং অন্যান্য কাজ করা যাবে। ফর্মের ডেটা প্রসেস করার জন্য আমরা একটি Java ক্লাস ব্যবহার করব।

  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

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

এখানে:

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

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

Tapestry এর নিজস্ব ভ্যালিডেশন ফ্রেমওয়ার্ক রয়েছে, যা ডেটার ভ্যালিডেশন করতে সাহায্য করে। আপনি ফর্ম ডেটার উপর কাস্টম ভ্যালিডেশন যোগ করতে পারেন।

  1. Java ক্লাসে ভ্যালিডেশন:
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;
        }
    }
}

এখানে:

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

ধাপ ৪: ফর্ম সাবমিট এবং সার্ভার সাইডে ডেটা প্রক্রিয়া

ফর্মটি যখন সাবমিট হয়, তখন onSuccessFromLoginForm() মেথডটি কল হবে। এই মেথডে:

  • username এবং password যাচাই করা হবে।
  • লগইন সফল হলে ব্যবহারকারীকে Home পেজে রিডাইরেক্ট করা হবে।
  • যদি লগইন ব্যর্থ হয়, তবে আবার লগইন পেজে ফিরে আসবে।

এছাড়া, আপনি onFailure এবং onSuccess মেথডগুলো ব্যবহার করে ফর্মের সাবমিশন প্রসেসে আরো কাস্টম কার্যাবলী যোগ করতে পারেন, যেমন ত্রুটি বার্তা প্রদর্শন বা লগিং।


সারাংশ

Tapestry তে ফর্ম সাবমিশন এবং সার্ভার সাইড প্রসেসিং খুবই সহজ এবং কার্যকর। t:form, t:textfield, t:passwordfield, t:button কম্পোনেন্ট ব্যবহার করে ফর্ম তৈরি করা হয় এবং action methods ব্যবহার করে ডেটা প্রক্রিয়া করা হয়। Tapestry এর ফর্ম ভ্যালিডেশন ফিচার সহ, আপনি ডেটার জন্য কাস্টম ভ্যালিডেশন যোগ করতে পারেন, যাতে ব্যবহারকারী ইনপুট সঠিক এবং নির্ভুল থাকে।

Content added By
Promotion