Apache Tapestry একটি component-based ফ্রেমওয়ার্ক যা Model-View-Controller (MVC) আর্কিটেকচার অনুসরণ করে, তবে এটি component-oriented programming (COP) ব্যবহারের মাধ্যমে ডেভেলপারদের UI উপাদানগুলোকে পুনঃব্যবহারযোগ্য করে তোলে। Tapestry তে pages এবং page logic তৈরি করার জন্য নির্দিষ্ট প্রক্রিয়া অনুসরণ করতে হয়। এই প্রক্রিয়া অনুসরণ করে আপনি সহজেই ওয়েব অ্যাপ্লিকেশন তৈরি করতে পারেন।
Tapestry-তে প্রতিটি পেজ মূলত দুটি অংশ নিয়ে গঠিত:
পেজ তৈরি করার প্রক্রিয়া নিচে দেওয়া হলো:
প্রথমে, আপনার পেজের জন্য একটি 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 ক্লাস তৈরি করতে হবে। 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);
}
}
এখানে:
name
প্রপার্টি ডেটাকে Tapestry পেজের মধ্যে bind করে।submit
মেথডটি কল হবে এবং ব্যবহারকারীর নামটি কনসোলে প্রদর্শিত হবে।এখন যে পেজ তৈরি করা হয়েছে, তাতে লজিক এবং UI একত্রিত হয়েছে। যখন ব্যবহারকারী ফর্ম সাবমিট করবেন, তখন Java ক্লাস এবং TML ফাইল একে অপরের সাথে ইন্টারঅ্যাক্ট করবে।
submit
মেথডটি চলবে।name
প্রপার্টি TML ফাইলের textfield
কম্পোনেন্টের সাথে সংযুক্ত, তাই ইনপুট ভ্যালু HomePage.java তে জমা হবে।Maven দিয়ে প্রজেক্ট বিল্ড করুন
প্রজেক্ট বিল্ড করতে Maven কমান্ডটি ব্যবহার করুন:
mvn clean package
Tomcat-এ ডিপ্লয় করুন
.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