Struts 2 এর Plugin ব্যবহার

স্ট্রাটস (Struts 2) - Java Technologies

317

Struts 2 একটি শক্তিশালী ফ্রেমওয়ার্ক যা MVC (Model-View-Controller) আর্কিটেকচার অনুসরণ করে। Struts 2 এর মধ্যে বিভিন্ন Plugins ব্যবহার করা যায়, যা ফ্রেমওয়ার্কের কার্যকারিতা বাড়াতে এবং কাস্টমাইজ করতে সহায়ক। Plugins হল ফিচারগুলো যা Struts 2 ফ্রেমওয়ার্কের সাথে সহজে একত্রিত করা যায়, যেমন Tiles Integration, Validation, Data Access, Logging, এবং আরও অনেক কিছু।

এখানে Struts 2 এর Plugins ব্যবহার করার কিছু প্রধান দিক এবং উদাহরণ দেওয়া হয়েছে।


Struts 2 Plugins এর সুবিধা

  • Extended Functionality: Struts 2 এর বেসিক ফিচারগুলো ছাড়াও, প্লাগিন ব্যবহার করে নতুন ফিচার যোগ করা যায়।
  • Customizable: প্রোজেক্টের প্রয়োজন অনুসারে প্লাগিনগুলো কাস্টমাইজ করা সম্ভব।
  • Reusable: একাধিক অ্যাপ্লিকেশনে প্লাগিন পুনঃব্যবহার করা যায়।

সাধারণ Struts 2 Plugins

  1. Struts 2 Tiles Plugin
  2. Struts 2 Validation Plugin
  3. Struts 2 REST Plugin
  4. Struts 2 Spring Plugin
  5. Struts 2 PDF Plugin

১. Struts 2 Tiles Plugin

Struts 2 Tiles Plugin ব্যবহার করে আপনি UI Layouts এবং Reusable Components তৈরি করতে পারেন। এটি Apache Tiles ইন্টিগ্রেশন সরবরাহ করে, যা UI টেমপ্লেটিং এবং পুনঃব্যবহারযোগ্য উপাদান তৈরি করতে সহায়ক।

Steps to use Struts 2 Tiles Plugin:

  1. Tiles Plugin Configuration (pom.xml or JAR Files):

    Maven ব্যবহার করলে tiles-servlet এবং struts2-tiles-plugin ডিপেনডেন্সি যুক্ত করতে হয়।

    pom.xml (Maven Dependencies):

    <dependency>
        <groupId>org.apache.tiles</groupId>
        <artifactId>tiles-api</artifactId>
        <version>3.0.8</version>
    </dependency>
    <dependency>
        <groupId>org.apache.tiles</groupId>
        <artifactId>tiles-servlet</artifactId>
        <version>3.0.8</version>
    </dependency>
    <dependency>
        <groupId>org.apache.struts</groupId>
        <artifactId>struts2-tiles-plugin</artifactId>
        <version>2.5.22</version>
    </dependency>
    
  2. struts.xml Configuration:

    struts.xml ফাইলে Tiles প্লাগিন কনফিগার করতে হয়। Tiles প্লাগিন ব্যবহারের জন্য tiles-default যোগ করতে হয়।

    <package name="default" extends="struts-default,tiles-default">
        <action name="home" class="com.example.HomeAction" method="execute">
            <result name="success" type="tiles">/home</result>
        </action>
    </package>
    
  3. tiles-definition.xml Configuration:

    Tiles ডিফাইনিশন ফাইলটি ব্যবহার করে আপনি টেমপ্লেট এবং লেআউট ডিফাইন করতে পারবেন।

    <tiles-definitions>
        <definition name="baseLayout" template="/WEB-INF/layouts/mainLayout.jsp">
            <put-attribute name="header" value="/WEB-INF/views/header.jsp"/>
            <put-attribute name="footer" value="/WEB-INF/views/footer.jsp"/>
            <put-attribute name="body" value="/WEB-INF/views/body.jsp"/>
        </definition>
        <definition name="home" extends="baseLayout">
            <put-attribute name="body" value="/WEB-INF/views/home.jsp"/>
        </definition>
    </tiles-definitions>
    

২. Struts 2 Validation Plugin

Struts 2 Validation Plugin ব্যবহার করে আপনি ফর্ম ইনপুটের জন্য কাস্টম ভ্যালিডেশন রুলস তৈরি করতে পারেন। এটি annotations এবং XML এর মাধ্যমে ইনপুট ভ্যালিডেশন পরিচালনা করতে সাহায্য করে।

Steps to use Struts 2 Validation Plugin:

  1. struts.xml Configuration:

    struts.xml ফাইলে validation প্লাগিন সক্রিয় করতে হয়।

    <package name="default" extends="struts-default,validation">
        <action name="login" class="com.example.LoginAction" method="execute">
            <result name="success">/welcome.jsp</result>
            <result name="input">/login.jsp</result>
        </action>
    </package>
    
  2. struts-validation.xml Configuration:

    struts-validation.xml ফাইলে ফর্ম ফিল্ডের জন্য ভ্যালিডেশন রুলস ডিফাইন করতে হয়।

    <validators>
        <validator name="requiredstring" class="org.apache.struts2.validator.RequiredStringValidator">
            <param name="fieldName">username</param>
            <message key="error.username.required">Username is required</message>
        </validator>
        <validator name="requiredstring" class="org.apache.struts2.validator.RequiredStringValidator">
            <param name="fieldName">password</param>
            <message key="error.password.required">Password is required</message>
        </validator>
    </validators>
    

৩. Struts 2 REST Plugin

Struts 2 REST Plugin RESTful Web Services তৈরির জন্য ব্যবহৃত হয়। এটি HTTP GET, POST, PUT, DELETE রিকোয়েস্ট সমর্থন করে এবং JSON/XML ফরম্যাটে রেসপন্স ফেরত দেয়।

Steps to use Struts 2 REST Plugin:

  1. pom.xml Dependencies:

    Maven ব্যবহার করলে Struts 2 REST প্লাগিনের ডিপেনডেন্সি যুক্ত করতে হবে।

    <dependency>
        <groupId>org.apache.struts</groupId>
        <artifactId>struts2-rest-plugin</artifactId>
        <version>2.5.22</version>
    </dependency>
    
  2. struts.xml Configuration:

    RESTful অ্যাকশন কনফিগার করার জন্য rest টাইপ ব্যবহার করতে হয়।

    <package name="rest" extends="struts-default,rest-default">
        <action name="user/{id}" class="com.example.action.UserAction">
            <result name="success" type="json">/json/user.json</result>
        </action>
    </package>
    

৪. Struts 2 Spring Plugin

Struts 2 Spring Plugin ব্যবহার করে Struts 2 অ্যাপ্লিকেশনকে Spring Framework এর সাথে ইন্টিগ্রেট করা যায়। Spring Container থেকে Bean ব্যবহার করা এবং Spring এর অন্যান্য সুবিধা পাওয়ার জন্য এই প্লাগিন খুবই উপকারী।

Steps to use Struts 2 Spring Plugin:

  1. Maven Dependencies:

    Maven ব্যবহার করলে struts2-spring-plugin ডিপেনডেন্সি যুক্ত করতে হবে।

    <dependency>
        <groupId>org.apache.struts</groupId>
        <artifactId>struts2-spring-plugin</artifactId>
        <version>2.5.22</version>
    </dependency>
    
  2. struts.xml Configuration:

    Spring এর Bean ব্যবহার করার জন্য spring-plugin কনফিগার করতে হয়।

    <package name="springPackage" extends="struts-default,spring-default">
        <action name="login" class="com.example.LoginAction" method="execute">
            <result name="success">/welcome.jsp</result>
        </action>
    </package>
    

সারাংশ

Struts 2 Plugins অ্যাপ্লিকেশনের কার্যকারিতা বৃদ্ধির জন্য একটি গুরুত্বপূর্ণ ভূমিকা পালন করে। এগুলি Struts 2 Tiles Plugin, Struts 2 Validation Plugin, Struts 2 REST Plugin, এবং Struts 2 Spring Plugin এর মতো ফিচারের মাধ্যমে আপনার অ্যাপ্লিকেশনটিকে আরও শক্তিশালী, স্কেলেবল এবং কাস্টমাইজেবল করে তোলে। বিভিন্ন প্লাগিনের মাধ্যমে আপনি UI টেমপ্লেটিং, ইনপুট ভ্যালিডেশন, RESTful ওয়েব সেবা, এবং Spring Integration সহজেই বাস্তবায়ন করতে পারেন।

Content added By

Struts 2 এর Plugin কী?

Struts 2 Plugins হল Struts 2 ফ্রেমওয়ার্কের এক্সটেনশন বা অতিরিক্ত বৈশিষ্ট্য যা ফ্রেমওয়ার্কের কার্যকারিতা এবং ফিচার বাড়ানোর জন্য ব্যবহৃত হয়। প্লাগইনগুলি Struts 2 অ্যাপ্লিকেশনে নতুন বৈশিষ্ট্য যোগ করার জন্য তৈরি করা হয়, যেমন সিকিউরিটি, ডাটাবেস ইন্টিগ্রেশন, কাস্টম রেজাল্ট টাইপ, ইন্টারসেপ্টর, লোগিং, এবং আরও অনেক কিছু।

Struts 2 প্লাগইন ব্যবহারের মাধ্যমে আপনি Struts 2 ফ্রেমওয়ার্কের সাথে অন্যান্য সুবিধা সহজেই ইন্টিগ্রেট করতে পারেন, যা অ্যাপ্লিকেশন ডেভেলপমেন্ট প্রক্রিয়াকে আরও উন্নত এবং দক্ষ করে তোলে।


Struts 2 এর প্লাগইন ব্যবহারের সুবিধা

  1. রিচ ফিচার সেট: Struts 2 প্লাগইনগুলোর মাধ্যমে আপনি বিভিন্ন ধরনের ফিচার যেমন সিকিউরিটি, লোগিং, ভ্যালিডেশন ইত্যাদি অ্যাপ্লিকেশনে সহজেই যোগ করতে পারেন।
  2. মডুলার ও এক্সটেন্সিবল: প্লাগইন ব্যবহার করলে আপনার অ্যাপ্লিকেশন মডুলার এবং এক্সটেন্ডেবল হয়, যা ভবিষ্যতে অন্যান্য ফিচার সহজে যোগ করতে সহায়তা করে।
  3. সহজ কনফিগারেশন: প্লাগইনগুলি কনফিগার করা সহজ এবং কোনো অতিরিক্ত কোড লেখার প্রয়োজন হয় না। একবার কনফিগারেশন সম্পন্ন হলে প্লাগইনগুলি আপনার অ্যাপ্লিকেশনে অটোমেটিক্যালি কাজ করতে শুরু করবে।
  4. উন্নত পারফরম্যান্স: প্লাগইন ব্যবহারের মাধ্যমে অনেকগুলি সাধারণ ফিচার এবং টাস্ক (যেমন অথেনটিকেশন, রোল-ভিত্তিক নিরাপত্তা) অটোমেটিক্যালি হ্যান্ডেল করা যায়, যা ডেভেলপমেন্টে সময় বাঁচায় এবং অ্যাপ্লিকেশনের পারফরম্যান্স উন্নত করে।

Struts 2 প্লাগইনের ধরন

Struts 2 এ বিভিন্ন ধরনের প্লাগইন রয়েছে যা বিভিন্ন কাজ সম্পাদন করতে ব্যবহৃত হয়। নিচে কিছু সাধারণ প্লাগইনের উদাহরণ দেওয়া হলো:

  1. Struts 2 Tiles Plugin:
    • এটি Tiles ফিচারের সাথে Struts 2 অ্যাপ্লিকেশনকে ইন্টিগ্রেট করে।
    • Tiles একটি টেমপ্লেট ম্যানেজমেন্ট সিস্টেম যা অ্যাপ্লিকেশনের লেআউট এবং UI উপাদানগুলিকে পুনঃব্যবহারযোগ্যভাবে ম্যানেজ করে।
  2. Struts 2 Spring Plugin:
    • এটি Spring Framework এবং Struts 2 ফ্রেমওয়ার্কের মধ্যে একটি ইন্টিগ্রেশন প্লাগইন।
    • এই প্লাগইনের মাধ্যমে আপনি Struts 2 অ্যাপ্লিকেশনে Spring beans ব্যবহার করতে পারেন, যার ফলে ডিপেনডেন্সি ইনজেকশন এবং AOP (Aspect-Oriented Programming) সুবিধা পাওয়া যায়।
  3. Struts 2 Hibernate Plugin:
    • Hibernate প্লাগইন Struts 2 অ্যাপ্লিকেশনের সাথে Hibernate ORM ইন্টিগ্রেট করার জন্য ব্যবহৃত হয়।
    • এটি ডেটাবেস অপারেশনগুলিকে সহজ এবং কার্যকরভাবে পরিচালনা করার জন্য ব্যবহৃত হয়।
  4. Struts 2 JSON Plugin:
    • JSON প্লাগইনটি Struts 2 অ্যাপ্লিকেশন থেকে JSON ডেটা ট্রান্সফার করার জন্য ব্যবহৃত হয়।
    • এটি অ্যাকশন রেসপন্সকে JSON ফরম্যাটে কনভার্ট করে এবং ক্লায়েন্ট সাইডের জাভাস্ক্রিপ্টের মাধ্যমে ডেটা পাঠায়।
  5. Struts 2 Validation Plugin:
    • এটি Form Validation এবং Data Validation সাপোর্ট প্রদান করে।
    • Validation প্লাগইনটি ব্যবহারের মাধ্যমে ডেভেলপাররা ইনপুট ডেটা যাচাই করতে পারেন।
  6. Struts 2 File Upload Plugin:
    • ফাইল আপলোড করার জন্য Struts 2 প্লাগইন ব্যবহৃত হয়। এটি HTTP multipart ফাইল আপলোড রিকোয়েস্ট প্রসেস করতে সহায়তা করে।

Struts 2 প্লাগইন কনফিগারেশন

Struts 2 অ্যাপ্লিকেশনে প্লাগইন কনফিগার করার জন্য সাধারণত struts.xml কনফিগারেশন ফাইল এবং web.xml ফাইলের মধ্যে কিছু কনফিগারেশন করতে হয়।

উদাহরণ: Struts 2 Tiles Plugin কনফিগারেশন

  1. pom.xml (Maven Dependency)
<dependency>
    <groupId>org.apache.tiles</groupId>
    <artifactId>tiles-core</artifactId>
    <version>3.0.8</version>
</dependency>

<dependency>
    <groupId>org.apache.tiles</groupId>
    <artifactId>tiles-struts2</artifactId>
    <version>3.0.8</version>
</dependency>
  1. struts.xml (Tiles Integration)
<struts>
    <package name="default" extends="struts-default,tiles-default">
        <action name="login" class="com.example.LoginAction">
            <result name="success">/welcome.jsp</result>
            <result name="error">/error.jsp</result>
        </action>
    </package>
</struts>
  1. tiles.xml (Tiles Definitions)
<?xml version="1.0" encoding="UTF-8"?>
<tiles-definitions>
    <definition name="defaultLayout" template="/WEB-INF/layouts/defaultLayout.jsp">
        <put-attribute name="header" value="/WEB-INF/views/partials/header.jsp"/>
        <put-attribute name="footer" value="/WEB-INF/views/partials/footer.jsp"/>
        <put-attribute name="body" value="body"/>
    </definition>
</tiles-definitions>

Struts 2 Tiles Plugin কনফিগারেশন ব্যাখ্যা:

  • tiles.xml ফাইলটি Tiles Definitions এবং layout কনফিগারেশন সংজ্ঞায়িত করে।
  • struts.xmltiles-default ব্যবহার করে Tiles প্লাগইন কনফিগার করা হয়।

Struts 2 প্লাগইনের বিভিন্ন কেস স্টাডি

  1. Spring Integration: Struts 2 এবং Spring এর ইন্টিগ্রেশন প্লাগইন ব্যবহার করে আপনি Spring-এর ডিপেনডেন্সি ইনজেকশন, AOP (Aspect-Oriented Programming) এবং ডাটাবেস লজিক Struts 2 অ্যাপ্লিকেশনে প্রয়োগ করতে পারেন। এতে, আপনার কোডে ডিপেনডেন্সি হ্যান্ডলিং আরও সহজ এবং পরিষ্কার হয়।
  2. Hibernate Integration: Hibernate প্লাগইন ব্যবহার করে, Struts 2 অ্যাপ্লিকেশনের ডেটাবেস অপারেশন সহজ এবং অটোমেটিক হয়ে যায়। Hibernate ORM ব্যবহার করে ডেটা প্য persistence layer খুবই সহজভাবে ম্যানেজ করা যায়।

সারাংশ

Struts 2 প্লাগইন ব্যবহারের মাধ্যমে আপনি Struts 2 অ্যাপ্লিকেশনে বিভিন্ন ধরনের বৈশিষ্ট্য সহজে এবং দ্রুত যোগ করতে পারেন। Tiles, Spring, Hibernate, JSON, Validation ইত্যাদি প্লাগইনগুলি Struts 2 ফ্রেমওয়ার্কে অনেক ধরনের অতিরিক্ত সুবিধা প্রদান করে। প্লাগইন ব্যবহার করলে অ্যাপ্লিকেশনটি আরও মডুলার, এক্সটেন্ডেবল, এবং কার্যকরী হয়ে ওঠে। Struts 2 প্লাগইনস এর মাধ্যমে আপনি কোনো কোড পুনরায় না লিখে নতুন ফিচার যোগ করতে পারেন, যা অ্যাপ্লিকেশনের রক্ষণাবেক্ষণ এবং স্কেলেবিলিটি উন্নত করে।


Content added By

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 ব্যবহার করা

  1. 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>
    
  2. 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 অ্যাকশন ক্লাসের মাধ্যমে প্রক্রিয়া করা হবে।
  3. 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;
        }
    }
    
  4. 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 ব্যবহার করা

  1. 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>
    
  2. 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 ফরম্যাটে রিটার্ন করা হবে।
  3. 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>
    
  4. 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 ব্যবহার করা

  1. 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>
    
  2. 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>
    
  3. 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
        }
    }
    
  4. 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 সেবা তৈরি

Content added By

Struts 2 ফ্রেমওয়ার্কে Plugins একটি গুরুত্বপূর্ণ ফিচার, যা আপনাকে বিভিন্ন অতিরিক্ত ফাংশনালিটি যোগ করতে সহায়ক। প্লাগইন ব্যবহার করে আপনি ফ্রেমওয়ার্কের কার্যকারিতা বাড়াতে পারেন যেমন validation, file upload, internationalization (i18n), AJAX ইত্যাদি। Struts 2 প্লাগইন ব্যবহারের মাধ্যমে আপনি আরও কাস্টমাইজড এবং শক্তিশালী অ্যাপ্লিকেশন তৈরি করতে পারেন।

এখানে Struts 2 Plugin এর কনফিগারেশন এবং ব্যবহার সম্পর্কে বিস্তারিত আলোচনা করা হবে।


১. Struts 2 Plugin কী?

Plugins হল Struts 2 ফ্রেমওয়ার্কের অংশ যা আপনাকে নতুন ফিচার বা ফাংশনালিটি যোগ করতে সহায়তা করে। উদাহরণস্বরূপ, Struts 2 প্লাগইন ব্যবহার করে আপনি বিভিন্ন form validation, file upload, AJAX কাজগুলোকে আরো সহজ এবং দ্রুত করতে পারেন।

Struts 2 প্লাগইনগুলো সাধারণত JAR ফাইল হিসেবে আসে এবং আপনাকে আপনার অ্যাপ্লিকেশনে সেগুলিকে pom.xml বা lib ফোল্ডারে যোগ করতে হয়।


২. Struts 2 প্লাগইন কনফিগারেশন

Struts 2 প্লাগইন কনফিগার করতে সাধারণত দুটি কাজ করতে হয়:

  1. pom.xml ফাইলে প্রয়োজনীয় প্লাগইন ডিপেনডেন্সি যোগ করা।
  2. struts.xml ফাইলে প্লাগইনের কনফিগারেশন করা।

৩. Struts 2 Validator Plugin

Struts 2 Validator Plugin একটি প্লাগইন যা ফর্মের ইনপুট ভ্যালিডেশন পরিচালনা করতে সহায়ক। এটি JSP পৃষ্ঠাগুলিতে সহজে ইনপুট ভ্যালিডেশন করতে সাহায্য করে এবং অটোমেটিক্যালি ত্রুটি বার্তা দেখায়।

উদাহরণ: Struts 2 Validator Plugin কনফিগারেশন

  1. pom.xml ফাইলে Validator Plugin ডিপেনডেন্সি যুক্ত করা:
<dependency>
    <groupId>org.apache.struts</groupId>
    <artifactId>struts2-core</artifactId>
    <version>2.5.22</version>
</dependency>

<dependency>
    <groupId>org.apache.struts</groupId>
    <artifactId>struts2-convention-plugin</artifactId>
    <version>2.5.22</version>
</dependency>

<dependency>
    <groupId>org.apache.struts</groupId>
    <artifactId>struts2-validator-plugin</artifactId>
    <version>2.5.22</version>
</dependency>
  1. struts.xml ফাইলে Validator প্লাগইন কনফিগার করা:
<struts>
    <package name="default" namespace="/" extends="struts-default">
        <action name="login" class="com.example.LoginAction">
            <result>/login.jsp</result>
        </action>
    </package>
</struts>
  1. validation.xml ফাইল তৈরি করে ইনপুট ভ্যালিডেশন যুক্ত করা:
<validators>
    <field name="username">
        <field-validator type="required">
            <message>Username is required!</message>
        </field-validator>
        <field-validator type="stringlength">
            <param name="min">5</param>
            <param name="max">15</param>
            <message>Username must be between 5 and 15 characters!</message>
        </field-validator>
    </field>

    <field name="password">
        <field-validator type="required">
            <message>Password is required!</message>
        </field-validator>
        <field-validator type="stringlength">
            <param name="min">8</param>
            <message>Password must be at least 8 characters!</message>
        </field-validator>
    </field>
</validators>
  1. Action Class:
import com.opensymphony.xwork2.ActionSupport;

public class LoginAction extends ActionSupport {
    private String username;
    private String password;

    @Override
    public String execute() {
        return SUCCESS;
    }

    // Getters and Setters
    public String getUsername() {
        return username;
    }

    public void setUsername(String username) {
        this.username = username;
    }

    public String getPassword() {
        return password;
    }

    public void setPassword(String password) {
        this.password = password;
    }
}
  1. JSP Page (login.jsp):
<%@ taglib uri="/struts-tags" prefix="s" %>
<html>
<body>
    <h2>Login Form</h2>
    <s:form action="login">
        <s:textfield name="username" label="Username" />
        <s:password name="password" label="Password" />
        <s:submit value="Login" />
    </s:form>

    <s:if test="hasActionErrors()">
        <div style="color: red;">
            <ul>
                <s:actionerror />
            </ul>
        </div>
    </s:if>
</body>
</html>

ব্যাখ্যা:

  • validation.xml: ফর্ম ইনপুটের জন্য ভ্যালিডেশন রুলস সংজ্ঞায়িত করা হয়েছে। এখানে username এবং password ফিল্ডের জন্য কিছু কাস্টম ভ্যালিডেশন রুলস দেওয়া হয়েছে।
  • struts.xml: প্লাগইন ব্যবহারের জন্য কনফিগার করা হয়েছে।
  • LoginAction: execute() মেথডের মাধ্যমে অ্যাকশন পরিচালিত হয়।

৪. File Upload Plugin

Struts 2-এ File Upload প্লাগইন ব্যবহৃত হয় ফাইল আপলোড করার জন্য। এটি ক্লায়েন্ট থেকে ফাইল গ্রহণ করে এবং সার্ভারে ফাইল সংরক্ষণ করতে সহায়তা করে।

উদাহরণ: Struts 2 File Upload Plugin কনফিগারেশন

  1. pom.xml ফাইলে File Upload Plugin ডিপেনডেন্সি যুক্ত করা:
<dependency>
    <groupId>org.apache.struts</groupId>
    <artifactId>struts2-core</artifactId>
    <version>2.5.22</version>
</dependency>

<dependency>
    <groupId>org.apache.struts</groupId>
    <artifactId>struts2-fileupload-plugin</artifactId>
    <version>2.5.22</version>
</dependency>
  1. struts.xml কনফিগারেশন:
<struts>
    <package name="default" namespace="/" extends="struts-default">
        <action name="uploadFile" class="com.example.FileUploadAction">
            <result>/uploadSuccess.jsp</result>
        </action>
    </package>
</struts>
  1. FileUploadAction Class:
import com.opensymphony.xwork2.ActionSupport;
import org.apache.struts2.dispatcher.multipart.MultiPartRequestWrapper;

public class FileUploadAction extends ActionSupport {
    private File upload; // This will hold the file
    private String uploadContentType; // To hold file type
    private String uploadFileName; // To hold file name

    @Override
    public String execute() {
        // File upload logic here
        return SUCCESS;
    }

    // Getters and Setters
    public File getUpload() {
        return upload;
    }

    public void setUpload(File upload) {
        this.upload = upload;
    }

    public String getUploadContentType() {
        return uploadContentType;
    }

    public void setUploadContentType(String uploadContentType) {
        this.uploadContentType = uploadContentType;
    }

    public String getUploadFileName() {
        return uploadFileName;
    }

    public void setUploadFileName(String uploadFileName) {
        this.uploadFileName = uploadFileName;
    }
}
  1. JSP Page for File Upload (upload.jsp):
<%@ taglib uri="/struts-tags" prefix="s" %>
<html>
<body>
    <h2>File Upload</h2>
    <s:form action="uploadFile" method="post" enctype="multipart/form-data">
        <s:file name="upload" label="Upload File" />
        <s:submit value="Upload" />
    </s:form>
</body>
</html>

ব্যাখ্যা:

  • struts.xml: ফাইল আপলোড করার জন্য একটি Action কনফিগার করা হয়েছে।
  • FileUploadAction: এখানে ফাইল আপলোড করা হচ্ছে এবং সংশ্লিষ্ট ডেটা (ফাইলের নাম এবং কনটেন্ট টাইপ) গ্রহণ করা হচ্ছে।
  • upload.jsp: ফাইল নির্বাচন এবং আপলোড করার জন্য ফর্ম তৈরি করা হয়েছে।

৫. Internationalization Plugin

Struts 2-এর Internationalization (i18n) প্লাগইন ব্যবহার করে আপনি বিভিন্ন ভাষায় আপনার অ্যাপ্লিকেশন কনফিগার করতে পারেন, যা অনেক ভাষার জন্য সমর্থন প্রদান করে।

উদাহরণ: Struts 2 Internationalization Plugin কনফিগারেশন

  1. struts.xml কনফিগারেশন:
<struts>
    <package name="default" namespace="/" extends="struts-default">
        <action name="hello" class="com.example.HelloAction">
            <result>/hello.jsp</result>
        </action>
    </package>
</struts>
  1. Resource Bundles (messages.properties):
greeting=Hello, welcome to Struts 2!
  1. messages_fr.properties (French Translation):
greeting=Bonjour, bienvenue sur Struts 2!
  1. JSP Page (hello.jsp):
<%@ taglib uri="/struts-tags" prefix="s" %>
<html>
<body>
    <h2><s:text name="greeting" /></h2>
</body>
</html>

ব্যাখ্যা:

  • struts.xml: অ্যাকশন কনফিগার করা হয়েছে যা hello.jsp পৃষ্ঠায় রিডিরেক্ট করবে।
  • Resource Bundles: বিভিন্ন ভাষার জন্য বার্তা ফাইল তৈরি করা হয়েছে (যেমন messages_fr.properties)। Struts 2 অ্যাপ্লিকেশনটি সিস্টেমের লোকাল ভাষা অনুযায়ী উপযুক্ত বার্তা দেখাবে।

সারাংশ

Struts 2 প্লাগইন ব্যবহারের মাধ্যমে আপনি অ্যাপ্লিকেশনে বিভিন্ন ফিচার সহজেই যোগ করতে পারেন। Validator Plugin, File Upload Plugin, এবং Internationalization Plugin এর মতো প্লাগইনগুলি Struts 2 অ্যাপ্লিকেশনের কার্যকারিতা ও কাস্টমাইজেশন বাড়াতে সাহায্য করে। প্রতিটি প্লাগইন ব্যবহারের জন্য আপনাকে সংশ্লিষ্ট ডিপেনডেন্সি যোগ করতে হবে এবং struts.xml বা validation.xml ফাইলের মাধ্যমে কনফিগার করতে হবে।

Content added By
Promotion

Are you sure to start over?

Loading...