Struts 2 একটি শক্তিশালী ওয়েব অ্যাপ্লিকেশন ফ্রেমওয়ার্ক যা Model-View-Controller (MVC) আর্কিটেকচার অনুসরণ করে। Struts 2 সাধারণত JSP (Java Server Pages) এর সাথে একত্রে ব্যবহৃত হয়, যা ব্যবহারকারীর ইন্টারফেসের (UI) জন্য ব্যবহৃত হয়। JSP এর মাধ্যমে আমরা ডায়নামিক ওয়েব পেজ তৈরি করতে পারি, যেখানে Struts 2 অ্যাকশন লজিক এবং মডেল ডেটা ব্যবহার করা হয়।
Struts 2 এবং JSP এর মধ্যে ইন্টিগ্রেশন সহজ এবং শক্তিশালী। Struts 2 অ্যাকশন ক্লাসের সাথে JSP পেজ কনফিগার করা হয়, যেখানে অ্যাকশন ক্লাস থেকে ডেটা অ্যাক্সেস এবং ফলাফল প্রদর্শন করা হয়।
Struts 2 এবং JSP এর মধ্যে Integration
Struts 2 এর মাধ্যমে JSP পেজে অ্যাকশন ক্লাসের ডেটা পাঠানো এবং রেসপন্স করা খুবই সহজ। Struts 2 এর কনফিগারেশন ফাইল (যেমন struts.xml) এর মাধ্যমে আপনি অ্যাকশন এবং রেজাল্ট কনফিগার করতে পারেন এবং JSP পেজে সেই রেজাল্ট প্রক্রিয়াকৃত ডেটা প্রদর্শন করতে পারেন।
1. Action Class তৈরি করা
Struts 2 এর Action Class অ্যাকশনের লজিক এবং ডেটা প্রক্রিয়াকরণ করে। অ্যাকশন ক্লাসের মাধ্যমে ডেটা থেকে প্রাপ্ত ফলাফল JSP পেজে পাঠানো হয়।
import com.opensymphony.xwork2.ActionSupport;
public class HelloWorldAction extends ActionSupport {
private String name;
// Getter and Setter
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
// Execute Method
public String execute() {
if (name != null) {
return SUCCESS;
}
return ERROR;
}
}
এখানে, HelloWorldAction একটি অ্যাকশন ক্লাস যা ব্যবহারকারীর নাম গ্রহণ করে এবং সেই অনুযায়ী একটি ফলাফল (SUCCESS বা ERROR) রিটার্ন করে।
2. struts.xml ফাইলে অ্যাকশন কনফিগার করা
struts.xml ফাইলটি Struts 2 এর কনফিগারেশন ফাইল, যেখানে অ্যাকশন ক্লাস এবং রেজাল্ট কনফিগার করা হয়। এখানে অ্যাকশন এবং রেজাল্ট এর সাথে JSP পেজ সংযুক্ত করা হয়।
<struts>
<package name="default" namespace="/" extends="struts-default">
<action name="helloWorld" class="com.example.HelloWorldAction">
<result name="success">/WEB-INF/content/success.jsp</result>
<result name="error">/WEB-INF/content/error.jsp</result>
</action>
</package>
</struts>
এখানে, helloWorld অ্যাকশনটি HelloWorldAction ক্লাসের সাথে যুক্ত এবং তার ফলাফল অনুযায়ী success.jsp বা error.jsp রিডিরেক্ট করবে।
3. JSP পেজে ডেটা প্রদর্শন করা
JSP পেজে অ্যাকশন ক্লাসের থেকে প্রাপ্ত ডেটা প্রদর্শন করতে Struts 2 Tag Libraries ব্যবহার করা হয়। উদাহরণস্বরূপ, <s:property> ট্যাগ ব্যবহার করে অ্যাকশন ক্লাসের name প্রপার্টি JSP পেজে প্রদর্শন করা যায়।
success.jsp
<html>
<body>
<h1>Welcome, <s:property value="name" /></h1>
</body>
</html>
এখানে, <s:property> ট্যাগ ব্যবহার করে name প্রপার্টিটি HelloWorldAction ক্লাস থেকে সংগ্রহ করা হচ্ছে এবং এটি success.jsp পেজে দেখানো হচ্ছে।
error.jsp
<html>
<body>
<h1>Error: Name is missing!</h1>
</body>
</html>
এটি একটি সাধারণ error.jsp পেজ যেখানে ব্যবহারকারী যদি কোনও নাম প্রদান না করেন, তবে একটি ত্রুটি বার্তা প্রদর্শিত হবে।
4. JSP পেজে ব্যবহারকারী ইনপুট নেওয়া
JSP পেজে ব্যবহারকারীর ইনপুট গ্রহণ করার জন্য <s:textfield> ট্যাগ ব্যবহার করা যেতে পারে।
<html>
<body>
<s:form action="helloWorld" method="post">
<s:textfield label="Enter your name" name="name" />
<s:submit value="Submit" />
</s:form>
</body>
</html>
এখানে, <s:textfield> ট্যাগ ব্যবহার করা হয়েছে যাতে ব্যবহারকারী তাদের নাম ইনপুট করতে পারে। <s:form> ট্যাগ ব্যবহার করে ফর্মটি সাবমিট করা হচ্ছে যা helloWorld অ্যাকশনের সাথে সংযুক্ত।
Struts 2 এর JSP এর সাথে বিশেষ ফিচারসমূহ
1. Struts 2 Tag Libraries
Struts 2 ট্যাগ লাইব্রেরি JSP পেজে ব্যবহার করা হয়, যা বিভিন্ন সুবিধা প্রদান করে। কিছু সাধারণ ট্যাগ:
- <s:form>: ফর্ম তৈরি করতে ব্যবহৃত হয়।
- <s:textfield>: টেক্সট ফিল্ড তৈরি করতে ব্যবহৃত হয়।
- <s:submit>: সাবমিট বাটন তৈরি করতে ব্যবহৃত হয়।
- <s:property>: অ্যাকশন ক্লাসের প্রপার্টি JSP পেজে প্রদর্শন করতে ব্যবহৃত হয়।
- <s:select>: ড্রপডাউন তালিকা তৈরি করতে ব্যবহৃত হয়।
2. Data Binding
Struts 2 Data Binding ফিচার সমর্থন করে, যার মাধ্যমে অ্যাকশন ক্লাসের প্রপার্টি এবং JSP পেজের ফর্ম ফিল্ডগুলো সহজে ম্যাপ করা যায়। যেমন, <s:textfield> ট্যাগের মাধ্যমে ডেটা অ্যাকশন ক্লাসের প্রপার্টির সাথে বাইন্ডিং করা হয়।
3. Validation Integration
Struts 2 এর সাথে JSP ব্যবহার করে, ফর্ম ইনপুট ভ্যালিডেশন খুবই সহজে করা যায়। ValidationInterceptor ইন্টারসেপ্টরের মাধ্যমে আপনি ব্যবহারকারীর ইনপুট ভ্যালিডেশন করতে পারেন।
উপসংহার
Struts 2 এবং JSP Integration এর মাধ্যমে আপনি সহজেই ডায়নামিক ওয়েব অ্যাপ্লিকেশন তৈরি করতে পারেন, যেখানে Struts 2 অ্যাকশন ক্লাস ডেটা প্রক্রিয়া করে এবং JSP পেজে সেই ডেটা প্রদর্শন করে। Struts 2 ট্যাগ লাইব্রেরি এবং ডেটা বাইন্ডিং ফিচারের মাধ্যমে JSP পেজে ব্যবহারকারী ইন্টারফেস তৈরির কাজ আরও সহজ হয়ে যায়। Struts 2 এবং JSP এর সংমিশ্রণ ওয়েব অ্যাপ্লিকেশন ডেভেলপমেন্টকে আরও শক্তিশালী এবং স্কেলেবল করে তোলে।
Read more