Struts 2 একটি শক্তিশালী Java-based web framework, যা Model-View-Controller (MVC) আর্কিটেকচার অনুসরণ করে। JSP (JavaServer Pages) হল Java ভিত্তিক একটি টেমপ্লেটিং ইঞ্জিন যা ডাইনামিক ওয়েব পেজ তৈরি করতে ব্যবহৃত হয়। Struts 2 এবং JSP একসাথে ব্যবহৃত হলে, আপনি JSP কে View হিসেবে এবং Struts 2 কে Controller এবং Model হিসেবে ব্যবহার করতে পারেন। এতে, ডেভেলপাররা অ্যাপ্লিকেশনের ইউজার ইন্টারফেস তৈরি করতে পারেন এবং সার্ভার সাইড লজিক সহজে পরিচালনা করতে পারেন।
Struts 2 এবং JSP এর ইন্টিগ্রেশন একটি অত্যন্ত সহজ প্রক্রিয়া। Struts 2 অ্যাকশন ক্লাসের মাধ্যমে ডেটা প্রক্রিয়া করা হয় এবং সেই ডেটা JSP পেজে উপস্থাপন করা হয়।
Struts 2 এবং JSP Integration এর উদাহরণ
নিচে একটি সাধারণ উদাহরণ দেওয়া হলো, যেখানে Struts 2 ফ্রেমওয়ার্ক এবং JSP পেজ একত্রে কাজ করছে।
1. struts.xml (Configuration File)
প্রথমে struts.xml ফাইলে একটি অ্যাকশন কনফিগার করা হয় এবং এটি hello.jsp পেজের সাথে যুক্ত করা হয়।
<?xml version="1.0" encoding="UTF-8"?>
<struts>
<package name="default" extends="struts-default">
<!-- অ্যাকশন কনফিগারেশন -->
<action name="hello" class="com.example.HelloAction">
<result>/WEB-INF/content/hello.jsp</result>
</action>
</package>
</struts>
- এখানে, অ্যাকশন নাম
helloএবং এর ক্লাসcom.example.HelloAction। এই অ্যাকশনটি সফলভাবে সম্পন্ন হলেhello.jspপেজে রিডিরেক্ট করবে।
2. HelloAction.java (Action Class)
এখন, অ্যাকশন ক্লাসে ডেটা প্রক্রিয়া করা হবে এবং সেটি JSP পেজে পাঠানো হবে।
package com.example;
import com.opensymphony.xwork2.ActionSupport;
public class HelloAction extends ActionSupport {
private String message;
public String execute() {
// মেসেজ সেট করা
message = "Hello, Struts 2 and JSP Integration!";
return SUCCESS;
}
public String getMessage() {
return message;
}
public void setMessage(String message) {
this.message = message;
}
}
- এখানে
HelloActionক্লাসটিActionSupportথেকে এক্সটেন্ড করা হয়েছে। execute()মেথডে একটি সিম্পল মেসেজ সেট করা হচ্ছে, যেটি পরবর্তী ধাপেJSPপেজে পাঠানো হবে।
3. hello.jsp (JSP Page)
এখন, আমরা hello.jsp পেজে সেই ডেটা প্রদর্শন করব যা অ্যাকশন ক্লাস থেকে পাঠানো হয়েছে।
<%@ taglib prefix="s" uri="/struts-tags" %>
<html>
<head><title>Struts 2 and JSP Example</title></head>
<body>
<h1><s:property value="message"/></h1>
</body>
</html>
- এখানে,
s:propertyট্যাগ ব্যবহার করা হয়েছে যা Struts 2 ট্যাগ লাইব্রেরি থেকে আসে। এটিmessageপ্রপার্টির মান (যা অ্যাকশন ক্লাস থেকে এসেছিল) প্রদর্শন করবে।
কীভাবে এটি কাজ করে?
- struts.xml কনফিগারেশন:
struts.xmlফাইলে অ্যাকশন কনফিগার করা হয়েছে। অ্যাকশনটিhelloনামে শনাক্ত হবে এবং এটিHelloActionক্লাসেরexecute()মেথডকে কল করবে।- যদি
execute()মেথড সফলভাবে সম্পন্ন হয়, তাহলেhello.jspপেজে রিডিরেক্ট হবে।
- HelloAction ক্লাস:
HelloActionক্লাসেরexecute()মেথডে একটি মেসেজ সেট করা হয়েছে। এই মেসেজটি পরবর্তী পর্যায়ে JSP পেজে দেখানো হবে।
- hello.jsp পেজ:
hello.jspপেজেs:propertyট্যাগের মাধ্যমেmessageপ্রপার্টির মান শো করা হচ্ছে।
Struts 2 এবং JSP এর শক্তি
- Model-View-Controller (MVC): Struts 2 এবং JSP একসাথে MVC আর্কিটেকচারের মাধ্যমে ডেটা, ভিউ এবং কন্ট্রোলারকে আলাদা করে। এটি অ্যাপ্লিকেশনের রক্ষণাবেক্ষণ এবং স্কেলেবিলিটি সহজ করে।
- Struts 2 ট্যাগ লাইব্রেরি: Struts 2 এ একটি শক্তিশালী ট্যাগ লাইব্রেরি রয়েছে যা JSP পেজে ডেটা প্রদর্শন এবং ইন্টারঅ্যাকশনকে সহজ করে। ট্যাগগুলি যেমন
<s:form>,<s:textField>,<s:submit>ইত্যাদি ব্যবহার করে ইউজার ইন্টারফেস তৈরি করা হয়। - ফ্লেক্সিবল রাউটিং:
struts.xmlফাইলের মাধ্যমে Struts 2 অ্যাকশন এবং রেজাল্ট রাউটিং খুবই ফ্লেক্সিবল এবং কনফিগারেবল। - ডেটা ব্যন্ডিং: Struts 2 এ ডেটা ব্যন্ডিং খুব সহজ, যেখানে অ্যাকশন ক্লাসের প্রপার্টি অটোমেটিক্যালি JSP পেজে প্রদর্শিত হয়।
সারাংশ
Struts 2 এবং JSP এর ইন্টিগ্রেশন একটি অত্যন্ত শক্তিশালী পদ্ধতি যা Model-View-Controller (MVC) আর্কিটেকচার অনুসরণ করে। Struts 2 অ্যাকশন ক্লাসে ব্যবসায়িক লজিক প্রক্রিয়া করে এবং সেই ডেটা JSP পেজে প্রদর্শন করে, যা ইউজার ইন্টারফেস হিসেবে কাজ করে। এই পদ্ধতিতে অ্যাকশন কনফিগারেশন, ডেটা প্রক্রিয়াকরণ এবং UI উপাদান প্রদর্শন খুবই সুনির্দিষ্টভাবে আলাদা হয়ে থাকে, যা রক্ষণাবেক্ষণ ও স্কেলেবিলিটিকে সহজ করে তোলে।
Read more