Struts 2 একটি শক্তিশালী ফ্রেমওয়ার্ক যা MVC (Model-View-Controller) আর্কিটেকচারের ভিত্তিতে কাজ করে। Struts 2-এ বিভিন্ন ধরনের প্লাগইন ব্যবহৃত হয় যা অ্যাপ্লিকেশনটির কার্যকারিতা বৃদ্ধি করতে সহায়ক। কিছু গুরুত্বপূর্ণ প্লাগইন যেমন REST, JSON, এবং AJAX স্ট্রাটস 2 অ্যাপ্লিকেশনে ডাটা বিনিময়, ব্যবহারকারীর ইন্টারঅ্যাকশন এবং অ্যাপ্লিকেশনের দ্রুত প্রতিক্রিয়া নিশ্চিত করতে সাহায্য করে। এই প্লাগইনগুলো আপনাকে ডাইনামিক এবং মোবাইল-ফ্রেন্ডলি অ্যাপ্লিকেশন তৈরিতে সাহায্য করে।
এখন, আসুন আমরা REST, JSON, এবং AJAX প্লাগইনগুলো স্ট্রাটস 2-এ কিভাবে ব্যবহার করা হয়, তা বিস্তারিতভাবে দেখব।
১. Struts 2 REST Plugin
REST (Representational State Transfer) হল একটি আর্কিটেকচারাল স্টাইল যা ওয়েব সার্ভিসের জন্য ব্যবহৃত হয়। Struts 2 REST প্লাগইন ব্যবহার করে আপনি HTTP methods (GET, POST, PUT, DELETE) এর মাধ্যমে অ্যাকশন রিকুয়েস্ট এবং রেসপন্স হ্যান্ডল করতে পারেন। এটি সহজে RESTful সেবা তৈরির জন্য ব্যবহৃত হয়।
Struts 2 REST Plugin ব্যবহার করা
Maven Dependency Setup:
প্রথমে আপনাকে struts2-rest-plugin ডিপেনডেন্সি pom.xml ফাইলে যোগ করতে হবে।
<dependency> <groupId>org.apache.struts</groupId> <artifactId>struts2-rest-plugin</artifactId> <version>2.5.22</version> </dependency>struts.xml কনফিগারেশন:
struts.xml ফাইলে REST অ্যাকশন কনফিগার করা হয়।
<struts> <package name="default" extends="struts-default, struts-rest-default"> <action name="product/{productId}" class="com.example.ProductAction" method="execute"> <result type="json">/WEB-INF/content/product.jsp</result> </action> </package> </struts>- এখানে
{productId}হল RESTful URL প্যারামিটার যা ProductAction অ্যাকশন ক্লাসের মাধ্যমে প্রক্রিয়া করা হবে।
- এখানে
Action Class:
ProductAction ক্লাসটি REST রিকুয়েস্ট প্রক্রিয়া করবে।
package com.example; import com.opensymphony.xwork2.ActionSupport; public class ProductAction extends ActionSupport { private String productId; private Product product; // Getter and Setter for productId and product public String getProductId() { return productId; } public void setProductId(String productId) { this.productId = productId; } public Product getProduct() { return product; } public void setProduct(Product product) { this.product = product; } // RESTful action @Override public String execute() throws Exception { product = productService.getProductById(productId); return SUCCESS; } }REST Request:
অ্যাকশনটি এখন RESTful HTTP রিকুয়েস্ট গ্রহণ করবে, যেমন:
GET http://localhost:8080/product/123যেখানে
123হল productId।
২. Struts 2 JSON Plugin
JSON (JavaScript Object Notation) একটি জনপ্রিয় ডেটা ইন্টারচেঞ্জ ফরম্যাট, যা সাধারণত অ্যাসিঙ্ক্রোনাস ডেটা ট্রান্সফারের জন্য ব্যবহৃত হয়। Struts 2 JSON Plugin ব্যবহার করে আপনি সহজেই JSON রেসপন্স প্রদান করতে পারেন।
Struts 2 JSON Plugin ব্যবহার করা
Maven Dependency Setup:
প্রথমে struts2-json-plugin ডিপেনডেন্সি pom.xml ফাইলে যোগ করতে হবে।
<dependency> <groupId>org.apache.struts</groupId> <artifactId>struts2-json-plugin</artifactId> <version>2.5.22</version> </dependency>Action Class:
JSON রেসপন্স ফেরত দেওয়ার জন্য একটি অ্যাকশন ক্লাস তৈরি করা হবে।
package com.example; import com.opensymphony.xwork2.ActionSupport; public class ProductAction extends ActionSupport { private String productId; private Product product; public String getProductId() { return productId; } public void setProductId(String productId) { this.productId = productId; } public Product getProduct() { return product; } public void setProduct(Product product) { this.product = product; } @Override public String execute() { product = productService.getProductById(productId); return SUCCESS; } }- এখানে, ProductAction অ্যাকশন ক্লাসে productId থেকে product অবজেক্ট পাওয়া যাচ্ছে এবং JSON ফরম্যাটে রিটার্ন করা হবে।
struts.xml কনফিগারেশন:
Struts 2 JSON রেজাল্ট টাইপ কনফিগার করা হয়।
<struts> <package name="default" extends="struts-default"> <action name="getProductJson" class="com.example.ProductAction" method="execute"> <result type="json"/> </action> </package> </struts>JSON Response:
যখন আপনি GET রিকুয়েস্ট করেন, তখন JSON আউটপুট পাওয়া যাবে, যেমন:
{ "productId": "123", "productName": "Product Name", "price": "100" }
৩. Struts 2 AJAX Plugin
AJAX (Asynchronous JavaScript and XML) হল একটি টেকনোলজি যা ওয়েব পৃষ্ঠাগুলি পুনরায় লোড না করেই সার্ভারের সাথে যোগাযোগ করতে দেয়। Struts 2 AJAX প্লাগইন ব্যবহার করে আপনি সহজেই AJAX রিকুয়েস্ট এবং রেসপন্স হ্যান্ডল করতে পারেন, যাতে পেজ রিফ্রেশ না হয়ে ডেটা সরবরাহ করা যায়।
Struts 2 AJAX Plugin ব্যবহার করা
Maven Dependency Setup:
struts2-jquery-plugin ব্যবহার করে AJAX রিকুয়েস্ট হ্যান্ডলিং করা যায়। প্রথমে pom.xml ফাইলে ডিপেনডেন্সি যোগ করতে হবে।
<dependency> <groupId>org.apache.struts</groupId> <artifactId>struts2-jquery-plugin</artifactId> <version>3.9.0</version> </dependency>struts.xml কনফিগারেশন:
AJAX রিকুয়েস্ট কনফিগার করা হয় struts.xml ফাইলে।
<struts> <package name="default" extends="struts-default"> <action name="getProduct" class="com.example.ProductAction" method="getProductAjax"> <result type="json"/> </action> </package> </struts>Action Class:
AJAX রিকুয়েস্টে JSON রেসপন্স ফেরত দেওয়ার জন্য অ্যাকশন ক্লাসটি কনফিগার করা হয়।
package com.example; import com.opensymphony.xwork2.ActionSupport; public class ProductAction extends ActionSupport { private String productId; private Product product; public String getProductId() { return productId; } public void setProductId(String productId) { this.productId = productId; } public Product getProduct() { return product; } public void setProduct(Product product) { this.product = product; } public String getProductAjax() { product = productService.getProductById(productId); return SUCCESS; // AJAX Response in JSON format } }AJAX Request:
ক্লায়েন্ট থেকে AJAX রিকুয়েস্ট পাঠানোর জন্য জাভাস্ক্রিপ্ট ব্যবহার করা যেতে পারে। উদাহরণস্বরূপ:
$.ajax({ url: '/getProduct', type: 'GET', dataType: 'json', success: function(data) { console.log(data.productName); console.log(data.price); } });
উপসংহার
Struts 2 ফ্রেমওয়ার্কে REST, JSON, এবং AJAX প্লাগইনগুলি আপনাকে আরো শক্তিশালী এবং ডাইনামিক ওয়েব অ্যাপ্লিকেশন তৈরি করতে সাহায্য করে। REST প্লাগইন RESTful সেবা তৈরি