Apache Tapestry একটি component-based ফ্রেমওয়ার্ক যা Model-View-Controller (MVC) আর্কিটেকচার অনুসরণ করে, তবে এটি component-oriented programming (COP) ব্যবহারের মাধ্যমে ডেভেলপারদের UI উপাদানগুলোকে পুনঃব্যবহারযোগ্য করে তোলে। Tapestry তে pages এবং page logic তৈরি করার জন্য নির্দিষ্ট প্রক্রিয়া অনুসরণ করতে হয়। এই প্রক্রিয়া অনুসরণ করে আপনি সহজেই ওয়েব অ্যাপ্লিকেশন তৈরি করতে পারেন।
পেজ তৈরি করা (Creating Pages)
Tapestry-তে প্রতিটি পেজ মূলত দুটি অংশ নিয়ে গঠিত:
- Tapestry Markup Language (TML) – এটি একটি HTML টেমপ্লেট যা UI (User Interface) উপাদানগুলো ধারণ করে।
- Java Class – এই ক্লাসটি পেজের লজিক পরিচালনা করে।
পেজ তৈরি করার প্রক্রিয়া নিচে দেওয়া হলো:
ধাপ ১: Tapestry পেজের টেমপ্লেট (TML) তৈরি
প্রথমে, আপনার পেজের জন্য একটি TML (Tapestry Markup Language) ফাইল তৈরি করতে হবে। এটি HTML টেমপ্লেটের মতো কাজ করবে এবং Tapestry এর কম্পোনেন্ট ও ট্যাগগুলোর সাহায্যে UI তৈরি করবে।
যেমন: HomePage.tml
<!DOCTYPE html>
<html xmlns:t="http://tapestry.apache.org/schema/tapestry_5_3.xsd">
<head>
<title>Welcome to Tapestry</title>
</head>
<body>
<h1>Welcome to Tapestry!</h1>
<t:form t:id="myForm">
<t:textfield t:id="nameField" placeholder="Enter your name"/>
<t:button t:id="submitButton" value="Submit"/>
</t:form>
</body>
</html>
এই TML ফাইলটি একটি সাধারণ HTML টেমপ্লেট, যেখানে একটি ফর্ম রয়েছে এবং একটি textfield এবং button কম্পোনেন্ট ব্যবহার করা হয়েছে।
ধাপ ২: Java পেজ লজিক ক্লাস তৈরি
এখন, আপনার পেজের লজিক এবং ডেটা হ্যান্ডলিংয়ের জন্য একটি Java ক্লাস তৈরি করতে হবে। Tapestry-তে এই Java ক্লাসটি Page Class হিসেবে পরিচিত, এবং এটি সাধারণত Page নামের সাথে সংযুক্ত থাকে।
যেমন: HomePage.java
package com.example.pages;
import org.apache.tapestry5.annotations.Property;
import org.apache.tapestry5.annotations.OnEvent;
import org.apache.tapestry5.ioc.annotations.Inject;
public class HomePage {
@Property
private String name;
// Event handler for form submission
@OnEvent(value = "submit")
void submit() {
System.out.println("Form submitted with name: " + name);
}
}
এখানে:
- @Property: এই অ্যানোটেশনটি
nameপ্রপার্টি ডেটাকে Tapestry পেজের মধ্যে bind করে। - @OnEvent: এটি একটি event handler যা form submission এর জন্য কাজ করে। ফর্মটি সাবমিট হলে
submitমেথডটি কল হবে এবং ব্যবহারকারীর নামটি কনসোলে প্রদর্শিত হবে।
ধাপ ৩: পেজ লজিক এবং UI ইন্টিগ্রেশন
এখন যে পেজ তৈরি করা হয়েছে, তাতে লজিক এবং UI একত্রিত হয়েছে। যখন ব্যবহারকারী ফর্ম সাবমিট করবেন, তখন Java ক্লাস এবং TML ফাইল একে অপরের সাথে ইন্টারঅ্যাক্ট করবে।
- ফর্ম ইনপুট: ব্যবহারকারী যখন ইনপুট দেয় এবং ফর্মটি সাবমিট করে, তখন HomePage.java ক্লাসের
submitমেথডটি চলবে। - ফর্ম সাবমিশন:
nameপ্রপার্টি TML ফাইলেরtextfieldকম্পোনেন্টের সাথে সংযুক্ত, তাই ইনপুট ভ্যালু HomePage.java তে জমা হবে।
ধাপ ৪: প্রজেক্ট বিল্ড এবং রান
Maven দিয়ে প্রজেক্ট বিল্ড করুন
প্রজেক্ট বিল্ড করতে Maven কমান্ডটি ব্যবহার করুন:
mvn clean packageTomcat-এ ডিপ্লয় করুন
.warফাইলটি তৈরি হলে, এটি Tomcat বা অন্য কোনো Servlet Container তে ডিপ্লয় করুন:cp target/my-tapestry-app-1.0-SNAPSHOT.war /path/to/tomcat/webapps/অ্যাপ্লিকেশন চালু করুন
Tomcat সার্ভার চালু করুন এবং ব্রাউজারে অ্যাপ্লিকেশন চেক করুন:
http://localhost:8080/my-tapestry-app/HomePage
সারাংশ
Apache Tapestry-তে পেজ তৈরি করা এবং পেজ লজিক পরিচালনা করা সহজ। TML (Tapestry Markup Language) ফাইল দিয়ে UI তৈরি করা হয়, এবং Java ক্লাসে পেজ লজিক এবং ইন্টারঅ্যাকশন পরিচালনা করা হয়। @Property অ্যানোটেশন দিয়ে ডেটা Tapestry পেজে bind করা যায় এবং @OnEvent দিয়ে বিভিন্ন event handler তৈরি করা যায়, যেমন ফর্ম সাবমিশন ইভেন্ট। Maven এবং Tomcat ব্যবহার করে Tapestry অ্যাপ্লিকেশন ডিপ্লয় এবং রান করা সম্ভব।
Read more