Struts 2 একটি শক্তিশালী Java ওয়েব ফ্রেমওয়ার্ক যা MVC (Model-View-Controller) আর্কিটেকচার অনুসরণ করে। এখানে Model ডাটা এবং লজিকের প্রতিনিধিত্ব করে, View হল ইউজারের ইন্টারফেস, এবং Controller অ্যাকশন এবং প্রোসেসিংয়ের মাধ্যমে রিকোয়েস্ট হ্যান্ডল করে। View হিসাবে সাধারণত JSP (Java Server Pages) ব্যবহৃত হয়, যা ইউজার ইন্টারফেস তৈরি করতে ব্যবহৃত হয়।
Struts 2 এ View তৈরি করতে JSP ব্যবহৃত হয় এবং এখানে আপনাকে Struts 2 tags (যেমন <s:form>, <s:textfield>, <s:submit>) ব্যবহার করতে হবে, যা Struts 2 ফ্রেমওয়ার্কের সাথে ইন্টিগ্রেটেড।
JSP এ View তৈরি করার প্রক্রিয়া
Struts 2-এ JSP ব্যবহার করে View তৈরি করতে হলে আপনাকে নিচের ধাপগুলি অনুসরণ করতে হবে:
- Action Class তৈরি করা: অ্যাকশন ক্লাসে লজিক নির্ধারণ করুন।
- struts.xml কনফিগারেশন: অ্যাকশন ক্লাস এবং রেজাল্ট পেজের জন্য কনফিগারেশন করুন।
- JSP ফাইল তৈরি করা: ইউজার ইন্টারফেস তৈরি করতে JSP ব্যবহার করুন এবং Struts 2 ট্যাগ ব্যবহার করুন।
উদাহরণ: Struts 2 এ JSP ব্যবহার করে View তৈরি করা
ধরা যাক, একটি সিম্পল অ্যাপ্লিকেশন তৈরি করা হচ্ছে, যা ব্যবহারকারীর নাম গ্রহণ করবে এবং স্বাগতম বার্তা প্রদর্শন করবে।
1. Action Class (HelloWorldAction.java)
package com.example;
import com.opensymphony.xwork2.ActionSupport;
public class HelloWorldAction extends ActionSupport {
private String name;
// Getter and Setter for name
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
// Execute method
public String execute() {
if (name == null || name.isEmpty()) {
return ERROR; // If name is empty, show error page
}
return SUCCESS; // If name is provided, show success page
}
}
এখানে HelloWorldAction ক্লাসটি একটি name প্রপার্টি গ্রহণ করে এবং যদি নাম পাওয়া যায়, তাহলে SUCCESS রিটার্ন করে। যদি নাম খালি থাকে, তবে ERROR রিটার্ন হবে।
2. struts.xml (Action Mapping)
<struts>
<package name="default" extends="struts-default">
<action name="hello" class="com.example.HelloWorldAction">
<result name="success">/hello.jsp</result>
<result name="error">/error.jsp</result>
</action>
</package>
</struts>
এখানে, struts.xml ফাইলে আমরা hello নামে একটি অ্যাকশন মেপিং করেছি, যা HelloWorldAction ক্লাসের সাথে সম্পর্কিত। সফল হলে hello.jsp এবং ত্রুটির ক্ষেত্রে error.jsp রিটার্ন করবে।
3. JSP ফাইল (hello.jsp)
<%@ taglib uri="/struts-tags" prefix="s" %>
<html>
<head>
<title>Welcome</title>
</head>
<body>
<h2>Welcome, <s:property value="name" /></h2>
<p>Your name is: <s:property value="name" /></p>
</body>
</html>
এখানে, <s:property> ট্যাগ ব্যবহার করা হয়েছে যাতে name প্রপার্টির মান JSP পৃষ্ঠায় প্রদর্শিত হয়।
4. JSP ফাইল (error.jsp)
<html>
<head>
<title>Error</title>
</head>
<body>
<h2>Error: Name is required!</h2>
</body>
</html>
এটি একটি সরল error.jsp ফাইল যা ব্যবহারকারী নাম প্রদান না করলে দেখানো হবে।
Struts 2 ট্যাগ লাইব্রেরি
Struts 2 JSP ট্যাগ লাইব্রেরি ব্যবহার করে আপনি খুব সহজে ফর্ম, ইনপুট, সাবমিট এবং অন্যান্য ইউজার ইন্টারফেস উপাদান তৈরি করতে পারেন। এখানে কিছু জনপ্রিয় Struts 2 ট্যাগ দেওয়া হল:
- <s:form>: ফর্ম তৈরি করার জন্য ব্যবহৃত হয়।
- <s:textfield>: একটি টেক্সট ফিল্ড তৈরি করে।
- <s:submit>: ফর্ম সাবমিট করার জন্য ব্যবহৃত হয়।
- <s:property>: অ্যাকশন ক্লাস থেকে প্রপার্টি প্রদর্শন করার জন্য ব্যবহৃত হয়।
- <s:select>: ড্রপডাউন লিস্ট তৈরি করার জন্য ব্যবহৃত হয়।
উদাহরণ: ফর্ম এবং ইনপুট ফিল্ড
<%@ taglib uri="/struts-tags" prefix="s" %>
<html>
<head>
<title>Enter Your Name</title>
</head>
<body>
<h2>Enter your name:</h2>
<s:form action="hello">
<s:textfield name="name" label="Name" />
<s:submit value="Submit" />
</s:form>
</body>
</html>
এখানে, একটি ফর্ম তৈরি করা হয়েছে যেখানে ব্যবহারকারী তার নাম ইনপুট করবে এবং পরে এটি hello অ্যাকশনের মাধ্যমে প্রসেস হবে।
Struts 2 এবং AJAX সমর্থন
Struts 2 AJAX সমর্থন করে, যা অ্যাসিনক্রোনাসভাবে ইউজারের ইনপুট প্রক্রিয়া করতে এবং রেসপন্স প্রদান করতে সাহায্য করে। আপনি AJAX ফিচারগুলি ব্যবহার করে একটি অত্যন্ত ইন্টারঅ্যাকটিভ অ্যাপ্লিকেশন তৈরি করতে পারেন।
উদাহরণ: AJAX ফিচার ব্যবহার
<%@ taglib uri="/struts-tags" prefix="s" %>
<html>
<head>
<title>AJAX Example</title>
</head>
<body>
<h2>Enter your name:</h2>
<s:form action="hello">
<s:textfield name="name" label="Name" id="nameField"/>
<s:submit value="Submit" id="submitButton" onclick="submitForm()"/>
</s:form>
<div id="result"></div>
<script>
function submitForm() {
var name = document.getElementById("nameField").value;
document.getElementById("result").innerHTML = "Hello, " + name + "!";
}
</script>
</body>
</html>
এখানে, submitForm() ফাংশনটি AJAX এর মতো কাজ করে এবং রেজাল্ট প্যানেলে নাম প্রদর্শন করে, কিন্তু পেজ রিফ্রেশ না করে।
সারাংশ
Struts 2 একটি শক্তিশালী MVC ফ্রেমওয়ার্ক যা JSP ব্যবহার করে View তৈরি করতে সহায়তা করে। Struts 2 ট্যাগ লাইব্রেরি (যেমন <s:form>, <s:textfield>, <s:submit>) ব্যবহার করে আপনি সহজে ডাইনামিক ওয়েব ফর্ম এবং ইউজার ইন্টারফেস উপাদান তৈরি করতে পারেন। JSP এ View তৈরি করা Struts 2 অ্যাপ্লিকেশন ডেভেলপমেন্টের জন্য একটি প্রক্রিয়া, যা অ্যাকশন ক্লাসের সাথে ইন্টিগ্রেটেড হয়ে ডাটা পাঠাতে এবং রিসিভ করতে সহায়তা করে। Struts 2 তে AJAX সমর্থন, ইনপুট ভ্যালিডেশন এবং ইন্টারঅ্যাকটিভ ইউজার ইন্টারফেস তৈরি করতে সহজেই ব্যবহৃত হতে পারে।
Read more