Struts 2 Setup এবং প্রথম প্রোজেক্ট

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

366

Struts 2 একটি শক্তিশালী Java-based Web Framework যা Model-View-Controller (MVC) আর্কিটেকচার অনুসরণ করে। এটি ওয়েব অ্যাপ্লিকেশন তৈরির জন্য অত্যন্ত জনপ্রিয় এবং এটি Apache Software Foundation দ্বারা উন্নত। Struts 2 অ্যাপ্লিকেশনগুলোর জন্য action-based control প্রদান করে এবং interceptors এর মাধ্যমে সহজেই রিকোয়েস্ট হ্যান্ডলিং করতে সাহায্য করে।

এখানে, আমরা Struts 2 Setup এবং প্রথম প্রোজেক্ট তৈরি করার পদ্ধতি আলোচনা করব।


১. Struts 2 Setup

Struts 2 প্রোজেক্ট তৈরি করতে হলে, প্রথমে আপনাকে Struts 2 ফ্রেমওয়ার্ক ইনস্টল করতে হবে এবং সঠিক কনফিগারেশন ফাইল তৈরি করতে হবে।

Struts 2 প্রোজেক্ট তৈরি করার জন্য Maven ব্যবহার করা

Maven একটি বিল্ড টুল যা ডিপেনডেন্সি ম্যানেজমেন্টের জন্য ব্যবহার করা হয়। Struts 2 এর জন্য একটি Maven প্রোজেক্ট তৈরি করতে হলে, pom.xml ফাইলে Struts 2 এর ডিপেনডেন্সি যুক্ত করতে হবে।

Step 1: Maven প্রোজেক্ট তৈরি

Eclipse বা IntelliJ IDEA ব্যবহার করে Maven প্রোজেক্ট তৈরি করুন।

Step 2: pom.xml ফাইল কনফিগারেশন

এখানে Struts 2 এর ডিপেনডেন্সি যোগ করা হয়েছে যা Maven প্রোজেক্টে Struts 2 ফ্রেমওয়ার্ক ইন্টিগ্রেট করার জন্য প্রয়োজন।

<dependencies>
    <dependency>
        <groupId>org.apache.struts</groupId>
        <artifactId>struts2-core</artifactId>
        <version>2.5.22</version>
    </dependency>
</dependencies>

এছাড়া, যদি আপনার প্রোজেক্টে Servlet বা JSP ব্যবহার করতে চান, তবে সেই অনুযায়ী Servlet API এবং JSP API ডিপেনডেন্সি যোগ করতে হবে।

<dependency>
    <groupId>javax.servlet</groupId>
    <artifactId>servlet-api</artifactId>
    <version>2.5</version>
    <scope>provided</scope>
</dependency>
<dependency>
    <groupId>javax.servlet.jsp</groupId>
    <artifactId>jsp-api</artifactId>
    <version>2.1</version>
    <scope>provided</scope>
</dependency>
Step 3: Web Descriptor (web.xml) কনফিগারেশন

web.xml ফাইলে Struts 2 DispatcherFilter কনফিগার করা হয়, যা সমস্ত HTTP রিকোয়েস্ট Struts 2 এর Dispatcher ফিল্টারে পাঠায়।

<web-app xmlns="http://java.sun.com/xml/ns/javaee"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
                             http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"
         version="3.0">
    
    <filter>
        <filter-name>struts2</filter-name>
        <filter-class>org.apache.struts2.dispatcher.FilterDispatcher</filter-class>
    </filter>

    <filter-mapping>
        <filter-name>struts2</filter-name>
        <url-pattern>/*</url-pattern>
    </filter-mapping>
    
</web-app>

২. প্রথম Struts 2 প্রোজেক্ট তৈরি করা

Step 1: struts.xml কনফিগারেশন

Struts 2 এর অ্যাকশন এবং রেজাল্ট মেপিং কনফিগার করার জন্য struts.xml ফাইলটি ব্যবহার করা হয়। এই ফাইলটি সাধারণত src/main/resources ডিরেক্টরিতে থাকে।

<struts>
    <package name="default" namespace="/" extends="struts-default">
        <action name="hello" class="com.example.HelloAction" method="execute">
            <result>/WEB-INF/content/hello.jsp</result>
        </action>
    </package>
</struts>

এখানে:

  • name: ইউআরএল পাথ, যেমন /hello
  • class: সেই Action ক্লাসের পূর্ণ পাথ, যেখানে আপনার প্রোগ্রাম লজিক থাকবে।
  • method: যে মেথডটি Action ক্লাসে রান হবে।

Step 2: Action Class তৈরি

Action Class হলো আপনার ব্যবসায়িক লজিক বা কাজের জায়গা। এখানে execute() মেথড থাকে, যা ইউজারের রিকোয়েস্টের জন্য প্রোসেসিং করে।

package com.example;

import com.opensymphony.xwork2.ActionSupport;

public class HelloAction extends ActionSupport {

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

এখানে execute() মেথডটি সফলতার জন্য SUCCESS রিটার্ন করবে।

Step 3: Result (JSP) তৈরি

struts.xml কনফিগারেশনে যেখানে /WEB-INF/content/hello.jsp রেসপন্স হিসেবে উল্লেখ করা হয়েছিল, সেই JSP ফাইলটি তৈরি করুন।

<!-- hello.jsp -->
<html>
    <body>
        <h1>Hello from Struts 2!</h1>
    </body>
</html>

৩. প্রথম Struts 2 প্রোজেক্ট চালানো

এখন, আপনি যদি আপনার প্রোজেক্টটি চালান, এবং http://localhost:8080/hello URL-এ যান, তবে আপনার HelloAction ক্লাসের execute() মেথডটি কল হবে এবং hello.jsp পেজটি রেন্ডার হবে।

এটি একটি খুব সিম্পল Struts 2 প্রোজেক্ট যেখানে Action ক্লাস এবং JSP রেসপন্স তৈরি করা হয়েছে।


৪. Struts 2 এর Advantages

  1. Separation of Concerns: MVC আর্কিটেকচারের মাধ্যমে কোডের মধ্যে ডাটা, লজিক এবং ভিউ আলাদা থাকে।
  2. Extensible: প্লাগইন সাপোর্টের মাধ্যমে প্রোজেক্টে নতুন ফিচার যুক্ত করা যায়।
  3. Easy to Integrate with Other Frameworks: Struts 2 সহজেই Spring, Hibernate এর মতো অন্যান্য ফ্রেমওয়ার্কের সাথে ইন্টিগ্রেট করা যায়।
  4. Tag Libraries: Struts 2-এর ট্যাগ লাইব্রেরি HTML এবং JSP পেজ তৈরি করা সহজ করে তোলে।

৫. Struts 2 এর Limitations

  1. Learning Curve: Struts 2-এর কিছু ফিচার নতুনদের জন্য শিখতে একটু কঠিন হতে পারে।
  2. Performance Overhead: কিছু পরিস্থিতিতে অতিরিক্ত কনফিগারেশন পারফরম্যান্সে প্রভাব ফেলতে পারে।
  3. Complexity for Small Projects: ছোট প্রোজেক্টের জন্য Struts 2 কিছুটা জটিল হতে পারে।

সারাংশ

Struts 2 একটি শক্তিশালী MVC ফ্রেমওয়ার্ক যা দ্রুত Java-based ওয়েব অ্যাপ্লিকেশন তৈরি করতে সহায়তা করে। এটি Action classes, struts.xml কনফিগারেশন, Result handling এবং Interceptors এর মাধ্যমে ওয়েব অ্যাপ্লিকেশন পরিচালনা করে। Maven ব্যবহার করে Struts 2 সেটআপ করা খুব সহজ, এবং JSP এর মাধ্যমে ভিউ রেন্ডার করা সম্ভব। Struts 2 অন্যান্য ফ্রেমওয়ার্কের সাথে সহজে ইন্টিগ্রেট করা যায়, যা এটি বৃহত্তর অ্যাপ্লিকেশন ডেভেলপমেন্টে জনপ্রিয় করে তোলে।

Content added By

Struts 2 হল একটি শক্তিশালী Java Web Framework যা MVC (Model-View-Controller) ডিজাইন প্যাটার্ন অনুসরণ করে। Struts 2 অ্যাপ্লিকেশন ডেভেলপ করার জন্য আপনাকে কিছু প্রাথমিক কনফিগারেশন করতে হবে, যেমন লাইব্রেরি ডিপেন্ডেন্সি এবং ফ্রেমওয়ার্কের জন্য সঠিক প্লাগিন সেটআপ। Maven এবং Gradle হল দুইটি জনপ্রিয় বিল্ড টুল যা Java প্রজেক্টে ডিপেন্ডেন্সি ম্যানেজমেন্ট এবং বিল্ড প্রক্রিয়া সহজ করে তোলে।

এখানে আমরা দেখব কিভাবে Maven এবং Gradle দিয়ে Struts 2 Environment সেটআপ করা যায়।


Maven দিয়ে Struts 2 Environment সেটআপ করা

Maven ব্যবহার করে Struts 2 পরিবেশ সেটআপ করার জন্য আপনাকে প্রথমে pom.xml ফাইলে প্রয়োজনীয় Struts 2 ডিপেন্ডেন্সি যোগ করতে হবে। নিচে Maven ব্যবহার করে সেটআপ করার বিস্তারিত পদক্ষেপ দেওয়া হলো।

1. Maven প্রজেক্ট তৈরি করুন

আপনি IntelliJ IDEA, Eclipse বা Spring Tool Suite ইত্যাদি IDE ব্যবহার করে Maven প্রজেক্ট তৈরি করতে পারেন। তবে, ম্যানুয়ালি Maven প্রজেক্ট তৈরি করতে হলে, একটি pom.xml ফাইল তৈরি করতে হবে।

2. pom.xml ফাইলে Struts 2 ডিপেন্ডেন্সি যোগ করা

এখানে একটি সাধারণ pom.xml ফাইলের উদাহরণ দেওয়া হল যেখানে Struts 2 এর জন্য প্রয়োজনীয় ডিপেন্ডেন্সি অন্তর্ভুক্ত করা হয়েছে।

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>

    <groupId>com.example</groupId>
    <artifactId>struts2-example</artifactId>
    <version>1.0-SNAPSHOT</version>
    <packaging>war</packaging>

    <dependencies>
        <!-- Struts 2 dependency -->
        <dependency>
            <groupId>org.apache.struts</groupId>
            <artifactId>struts2-core</artifactId>
            <version>2.5.22</version> <!-- Use the latest version -->
        </dependency>

        <!-- Servlet API dependency for web development -->
        <dependency>
            <groupId>javax.servlet</groupId>
            <artifactId>servlet-api</artifactId>
            <version>2.5</version>
            <scope>provided</scope>
        </dependency>

        <!-- JSTL dependency -->
        <dependency>
            <groupId>javax.servlet.jsp.jstl</groupId>
            <artifactId>javax.servlet.jsp.jstl-api</artifactId>
            <version>1.2.1</version>
            <scope>provided</scope>
        </dependency>

        <!-- Log4j for logging -->
        <dependency>
            <groupId>log4j</groupId>
            <artifactId>log4j</artifactId>
            <version>1.2.17</version>
        </dependency>
    </dependencies>

    <build>
        <plugins>
            <!-- Plugin for WAR file generation -->
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-war-plugin</artifactId>
                <version>3.3.1</version>
            </plugin>
        </plugins>
    </build>

</project>

ব্যাখ্যা:

  • struts2-core: এটি Struts 2 ফ্রেমওয়ার্কের প্রধান জার ফাইল, যা MVC কন্ট্রোলারের জন্য প্রয়োজনীয় ক্লাসগুলো সরবরাহ করে।
  • servlet-api: Servlet API ডিপেন্ডেন্সি, যা ওয়েব অ্যাপ্লিকেশনের জন্য প্রয়োজনীয়।
  • log4j: লগিং এর জন্য ব্যবহৃত।

3. Maven কমান্ড দিয়ে প্রজেক্ট বিল্ড করা

প্রজেক্ট সেটআপ করার পর, Maven দিয়ে প্রজেক্ট বিল্ড করতে পারেন:

mvn clean install

এটি Struts 2 ফ্রেমওয়ার্ক এবং অন্যান্য ডিপেন্ডেন্সি ডাউনলোড করে এবং WAR ফাইল তৈরি করবে।

4. web.xml কনফিগারেশন ফাইল

আপনার web.xml ফাইলটিতে Struts 2 ফ্রেমওয়ার্ক সার্ভলেট কনফিগার করতে হবে। উদাহরণস্বরূপ:

<web-app xmlns="http://java.sun.com/xml/ns/javaee"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
                             http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"
         version="3.0">
    <display-name>Struts 2 Application</display-name>

    <!-- Struts 2 Filter configuration -->
    <filter>
        <filter-name>struts2</filter-name>
        <filter-class>org.apache.struts2.dispatcher.FilterDispatcher</filter-class>
    </filter>
    <filter-mapping>
        <filter-name>struts2</filter-name>
        <url-pattern>/*</url-pattern>
    </filter-mapping>

</web-app>

Gradle দিয়ে Struts 2 Environment সেটআপ করা

Gradle একটি বিল্ড অটোমেশন টুল যা সহজে ডিপেন্ডেন্সি ম্যানেজমেন্ট করতে সাহায্য করে এবং Maven-এর তুলনায় আরও দ্রুত কাজ করে।

1. Gradle প্রজেক্ট তৈরি করুন

Gradle প্রজেক্ট তৈরি করতে, আপনি build.gradle ফাইল ব্যবহার করেন। Gradle সেটআপ করার জন্য প্রথমে Gradle ইনস্টল করতে হবে অথবা IDE-এর মাধ্যমে এটি ইন্টিগ্রেট করা যাবে।

2. build.gradle ফাইলে Struts 2 ডিপেন্ডেন্সি যোগ করা

এখানে একটি সাধারণ build.gradle ফাইলের উদাহরণ দেওয়া হল যেখানে Struts 2 এর জন্য ডিপেন্ডেন্সি যোগ করা হয়েছে:

plugins {
    id 'java'
    id 'war'
}

group 'com.example'
version '1.0-SNAPSHOT'

repositories {
    mavenCentral()
}

dependencies {
    implementation 'org.apache.struts:struts2-core:2.5.22'  // Struts 2 Core
    providedCompile 'javax.servlet:servlet-api:2.5'  // Servlet API
    providedCompile 'javax.servlet.jsp.jstl:javax.servlet.jsp.jstl-api:1.2.1'  // JSTL
    implementation 'log4j:log4j:1.2.17'  // Log4j for logging
}

war {
    baseName = 'struts2-example'
    version =  '1.0-SNAPSHOT'
}

3. Gradle কমান্ড দিয়ে প্রজেক্ট বিল্ড করা

এখন Gradle ব্যবহার করে প্রজেক্ট বিল্ড করতে:

gradle clean build

এটি আপনার প্রজেক্টের জন্য প্রয়োজনীয় ডিপেন্ডেন্সি ডাউনলোড করবে এবং WAR ফাইল তৈরি করবে।

4. web.xml কনফিগারেশন ফাইল

Gradle প্রজেক্টে একইভাবে web.xml ফাইল কনফিগার করতে হবে, যেমনটি Maven এ করা হয়েছিল।

<web-app xmlns="http://java.sun.com/xml/ns/javaee"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
                             http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"
         version="3.0">
    <display-name>Struts 2 Application</display-name>

    <!-- Struts 2 Filter configuration -->
    <filter>
        <filter-name>struts2</filter-name>
        <filter-class>org.apache.struts2.dispatcher.FilterDispatcher</filter-class>
    </filter>
    <filter-mapping>
        <filter-name>struts2</filter-name>
        <url-pattern>/*</url-pattern>
    </filter-mapping>

</web-app>

সারাংশ

Struts 2 পরিবেশ সেটআপ করতে, আপনি Maven অথবা Gradle ব্যবহার করতে পারেন। Maven-এর জন্য, pom.xml ফাইলে Struts 2 এবং অন্যান্য প্রয়োজনীয় ডিপেন্ডেন্সি যোগ করতে হবে এবং Gradle-এর জন্য build.gradle ফাইলে ডিপেন্ডেন্সি এবং প্লাগইন কনফিগার করতে হবে। এভাবে আপনার Java web অ্যাপ্লিকেশনে Struts 2 ফ্রেমওয়ার্ক ব্যবহার করে MVC আর্কিটেকচার প্রতিষ্ঠা করা যাবে।

Content added By

Struts 2 একটি শক্তিশালী ওয়েব ফ্রেমওয়ার্ক যা Model-View-Controller (MVC) আর্কিটেকচার ব্যবহার করে। Struts 2 প্রোজেক্ট তৈরি করতে Eclipse বা IntelliJ IDEA ব্যবহার করা যেতে পারে। এখানে দুটি IDE তে Struts 2 প্রোজেক্ট তৈরি করার ধাপগুলো বিস্তারিতভাবে আলোচনা করা হলো।


Eclipse তে Struts 2 প্রোজেক্ট তৈরি করা

১. Eclipse IDE ইনস্টল করুন

প্রথমে, যদি আপনার সিস্টেমে Eclipse ইনস্টল না থাকে, তাহলে Eclipse Download থেকে এটি ডাউনলোড করে ইনস্টল করুন।

২. Maven এর মাধ্যমে Struts 2 লাইব্রেরি যুক্ত করা

Struts 2 এর জন্য সহজভাবে ডিপেনডেন্সি ম্যানেজ করার জন্য Maven ব্যবহার করা উত্তম। যদি Maven প্রকল্প না থাকে, তবে এটি প্রথমে তৈরি করতে হবে।

  1. Eclipse ওপেন করুন এবং একটি নতুন Maven Web Project তৈরি করুন।
  2. প্রকল্পের pom.xml ফাইলে Struts 2 এর জন্য ডিপেনডেন্সি যোগ করুন:
<dependency>
    <groupId>org.apache.struts</groupId>
    <artifactId>struts2-core</artifactId>
    <version>2.5.22</version> <!-- সর্বশেষ ভার্সন চেক করুন -->
</dependency>

৩. Web.xml কনফিগারেশন

web.xml ফাইলটি আপনার ওয়েব অ্যাপ্লিকেশন কনফিগার করতে ব্যবহৃত হয়। এখানে Struts 2 ফিল্টার কনফিগার করতে হবে।

<web-app xmlns="http://java.sun.com/xml/ns/javaee"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://java.sun.com/xml/ns/javaee 
             http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"
         version="3.0">

    <filter>
        <filter-name>struts2</filter-name>
        <filter-class>org.apache.struts2.dispatcher.FilterDispatcher</filter-class>
    </filter>

    <filter-mapping>
        <filter-name>struts2</filter-name>
        <url-pattern>*.action</url-pattern>
    </filter-mapping>

</web-app>

৪. struts.xml কনফিগারেশন

struts.xml ফাইলে অ্যাকশন এবং তার ফলস্বরূপ রিসাল্ট কনফিগার করতে হবে।

<package name="default" extends="struts-default">
    <action name="hello" class="com.example.HelloWorldAction" method="execute">
        <result name="success">/success.jsp</result>
    </action>
</package>

৫. Action Class তৈরি করুন

Struts 2 অ্যাকশন ক্লাসে ইউজারের ইনপুট গ্রহণ এবং প্রক্রিয়া করার জন্য কোড লিখুন।

public class HelloWorldAction extends ActionSupport {
    private String name;

    public String execute() {
        System.out.println("Hello, " + name);
        return SUCCESS;  // Return success page
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }
}

৬. JSP (View Layer) তৈরি করুন

Struts 2 ফর্ম তৈরি করতে JSP পৃষ্ঠাগুলিতে Struts ট্যাগ ব্যবহার করুন।

<s:form action="hello">
    <s:textfield name="name" label="Enter your name"/>
    <s:submit value="Submit"/>
</s:form>

৭. Run the Project

  1. প্রোজেক্টটি রান করার জন্য Servers ট্যাব থেকে আপনার ওয়েব সার্ভার (যেমন Tomcat) সিলেক্ট করুন।
  2. প্রোজেক্টটি রান করুন এবং ওয়েব ব্রাউজারে পরীক্ষা করুন।

IntelliJ IDEA তে Struts 2 প্রোজেক্ট তৈরি করা

১. IntelliJ IDEA ইনস্টল করুন

IntelliJ IDEA ডাউনলোড করতে, IntelliJ IDEA Download থেকে সর্বশেষ ভার্সন ডাউনলোড করুন।

২. Maven এর মাধ্যমে Struts 2 লাইব্রেরি যুক্ত করা

  1. IntelliJ IDEA তে একটি নতুন Maven Web Project তৈরি করুন।
  2. pom.xml ফাইলে Struts 2 ডিপেনডেন্সি যোগ করুন:
<dependency>
    <groupId>org.apache.struts</groupId>
    <artifactId>struts2-core</artifactId>
    <version>2.5.22</version> <!-- সর্বশেষ ভার্সন চেক করুন -->
</dependency>

৩. Web.xml কনফিগারেশন

IntelliJ IDEA তে web.xml কনফিগারেশন করা হলে সেটি ঠিকভাবে আপনার ওয়েব অ্যাপ্লিকেশন কনফিগার করবে।

<web-app xmlns="http://java.sun.com/xml/ns/javaee"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://java.sun.com/xml/ns/javaee 
             http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"
         version="3.0">

    <filter>
        <filter-name>struts2</filter-name>
        <filter-class>org.apache.struts2.dispatcher.FilterDispatcher</filter-class>
    </filter>

    <filter-mapping>
        <filter-name>struts2</filter-name>
        <url-pattern>*.action</url-pattern>
    </filter-mapping>

</web-app>

৪. struts.xml কনফিগারেশন

Struts 2 এর struts.xml ফাইলে অ্যাকশন কনফিগার করুন।

<package name="default" extends="struts-default">
    <action name="hello" class="com.example.HelloWorldAction" method="execute">
        <result name="success">/success.jsp</result>
    </action>
</package>

৫. Action Class তৈরি করুন

একটি অ্যাকশন ক্লাস তৈরি করুন যা ইউজারের ইনপুট গ্রহণ করবে।

public class HelloWorldAction extends ActionSupport {
    private String name;

    public String execute() {
        System.out.println("Hello, " + name);
        return SUCCESS;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }
}

৬. JSP তৈরি করুন

JSP পৃষ্ঠাতে ফর্ম ব্যবহার করুন যা অ্যাকশন ক্লাসে ইনপুট পাঠাবে।

<s:form action="hello">
    <s:textfield name="name" label="Enter your name"/>
    <s:submit value="Submit"/>
</s:form>

৭. Run the Project

  1. IntelliJ IDEA তে প্রোজেক্ট রান করার জন্য Run বাটনে ক্লিক করুন।
  2. আপনার প্রোজেক্ট ব্রাউজারে দেখুন এবং নিশ্চিত করুন যে এটি সঠিকভাবে কাজ করছে।

সারাংশ

Struts 2 প্রোজেক্ট তৈরি করার জন্য Eclipse এবং IntelliJ IDEA উভয় IDE তেই Maven ব্যবহার করে সোজা এবং দ্রুত লাইব্রেরি ম্যানেজমেন্ট করা যায়। Web.xml এবং struts.xml কনফিগারেশনের মাধ্যমে অ্যাকশন ক্লাস এবং ফিল্টার সেটআপ করার পর, JSP পৃষ্ঠায় Struts ট্যাগ ব্যবহার করে ইউজারের ইনপুট এবং ফলাফল প্রদর্শন করা যায়।

Content added By

Struts 2 একটি জনপ্রিয় Java ফ্রেমওয়ার্ক যা MVC (Model-View-Controller) আর্কিটেকচার অনুসরণ করে। এটি উন্নত ওয়েব অ্যাপ্লিকেশন তৈরি করতে সহায়ক। এখানে একটি সাধারণ Hello World অ্যাপ্লিকেশন তৈরি করার উদাহরণ দেওয়া হচ্ছে, যা Struts 2 ব্যবহার করে।


প্রয়োজনীয় সেটআপ

Struts 2 অ্যাপ্লিকেশন তৈরি করতে, আপনি প্রথমে Apache Struts 2 লাইব্রেরি এবং Servlet container (যেমন Tomcat) সেটআপ করতে হবে। এখানে Maven ব্যবহার করে Struts 2 অ্যাপ্লিকেশন তৈরি করার জন্য প্রয়োজনীয় কনফিগারেশন দেওয়া হচ্ছে।

১. Maven প্রোজেক্ট তৈরি এবং প্রয়োজনীয় ডিপেনডেন্সি

pom.xml ফাইলে Struts 2 এবং অন্যান্য প্রয়োজনীয় লাইব্রেরির ডিপেনডেন্সি যোগ করুন।

<project xmlns="http://maven.apache.org/POM/4.0.0"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>

    <groupId>com.example</groupId>
    <artifactId>struts2-hello-world</artifactId>
    <version>1.0-SNAPSHOT</version>
    <packaging>war</packaging>

    <dependencies>
        <!-- Struts 2 dependency -->
        <dependency>
            <groupId>org.apache.struts</groupId>
            <artifactId>struts2-core</artifactId>
            <version>2.5.22</version>
        </dependency>

        <!-- Servlet API for Tomcat -->
        <dependency>
            <groupId>javax.servlet</groupId>
            <artifactId>javax.servlet-api</artifactId>
            <version>4.0.1</version>
            <scope>provided</scope>
        </dependency>
    </dependencies>

    <build>
        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-war-plugin</artifactId>
                <version>3.3.1</version>
            </plugin>
        </plugins>
    </build>
</project>

এই ডিপেনডেন্সি Struts 2 ফ্রেমওয়ার্ক এবং Servlet API কে অন্তর্ভুক্ত করবে, যা আপনার প্রোজেক্টের জন্য প্রয়োজনীয়।


২. Action Class তৈরি করা

এখন একটি Action Class তৈরি করুন, যা ইউজারের রিকুয়েস্ট প্রক্রিয়া করবে।

HelloWorldAction.java (Action class):

package com.example;

import com.opensymphony.xwork2.ActionSupport;

public class HelloWorldAction extends ActionSupport {
    private String name;

    // Action method that returns a String (Success/Failure)
    public String execute() {
        if (name == null || name.isEmpty()) {
            name = "World";
        }
        return SUCCESS;
    }

    // Getter and Setter methods for 'name'
    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }
}

Action Class:

  • ActionSupport ক্লাসটি Struts 2 দ্বারা সরবরাহিত একটি বেস ক্লাস, যা execute() মেথড প্রক্রিয়া করতে সহায়ক। এখানে name প্রপার্টি ইউজারের ইনপুট গ্রহণ করতে ব্যবহৃত হচ্ছে এবং যদি নাম দেওয়া না হয় তবে "World" নামটি ডিফল্ট মান হিসেবে ব্যবহার করা হবে।

৩. Struts 2 কনফিগারেশন (struts.xml)

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

struts.xml:

<?xml version="1.0" encoding="UTF-8"?>
<struts>
    <package name="default" extends="struts-default">
        <!-- Action configuration -->
        <action name="hello" class="com.example.HelloWorldAction">
            <result>/hello.jsp</result>
        </action>
    </package>
</struts>
  • এখানে, hello নামক একটি অ্যাকশন HelloWorldAction ক্লাসের সাথে সম্পর্কিত।
  • অ্যাকশনটি সফল হলে এটি hello.jsp পৃষ্ঠায় রিডিরেক্ট হবে।

৪. JSP পৃষ্ঠা (hello.jsp)

এখন একটি JSP পৃষ্ঠা তৈরি করুন, যা অ্যাকশন থেকে প্রাপ্ত ডাটা প্রদর্শন করবে।

hello.jsp:

<%@ taglib uri="/struts-tags" prefix="s" %>
<html>
<head>
    <title>Hello Struts 2</title>
</head>
<body>
    <h2>Hello, <s:property value="name" /></h2>
</body>
</html>
  • JSP ফাইল: এখানে, আমরা Struts 2 এর property ট্যাগ ব্যবহার করেছি, যা অ্যাকশন থেকে প্রাপ্ত name প্রপার্টি রেন্ডার করবে।

৫. Web.xml কনফিগারেশন

Web.xml ফাইলের মাধ্যমে Struts 2 DispatcherServlet কনফিগার করা হয়, যা অ্যাপ্লিকেশনের এন্টার পয়েন্ট।

web.xml:

<web-app xmlns="http://java.sun.com/xml/ns/javaee"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
             http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"
         version="3.0">

    <!-- Struts 2 Dispatcher Servlet -->
    <servlet>
        <servlet-name>struts2</servlet-name>
        <servlet-class>org.apache.struts2.dispatcher.FilterDispatcher</servlet-class>
        <load-on-startup>1</load-on-startup>
    </servlet>

    <servlet-mapping>
        <servlet-name>struts2</servlet-name>
        <url-pattern>/</url-pattern>
    </servlet-mapping>

</web-app>
  • FilterDispatcher: এটি Struts 2 এর প্রধান সেরভলেট যা সমস্ত HTTP রিকুয়েস্ট গ্রহণ এবং প্রক্রিয়া করে।

৬. অ্যাপ্লিকেশন রান করা

  1. Maven কমান্ড ব্যবহার করে প্রোজেক্টটি কম্পাইল করুন:

    mvn clean install
    
  2. WAR ফাইল তৈরি হলে, এটি Tomcat বা আপনার পছন্দের সের্ভারে ডিপ্লয় করুন।
  3. ব্রাউজারে অ্যাপ্লিকেশনটি চালান:

    http://localhost:8080/struts2-hello-world/hello.action
    

এটি আপনাকে একটি "Hello, World" বার্তা প্রদর্শন করবে।


সারাংশ

এটি ছিল Struts 2 ফ্রেমওয়ার্কে একটি সাধারণ Hello World অ্যাপ্লিকেশন তৈরি করার উদাহরণ। Struts 2 Action ক্লাস, struts.xml কনফিগারেশন এবং JSP ব্যবহার করে একটি MVC আর্কিটেকচারের ভিত্তিতে এই অ্যাপ্লিকেশনটি তৈরি করা হয়েছে। Struts 2 খুবই শক্তিশালী এবং কাস্টমাইজেবল, যা দ্রুত ওয়েব অ্যাপ্লিকেশন ডেভেলপমেন্টে সাহায্য করে।

Content added By

Struts 2 একটি শক্তিশালী এবং অত্যন্ত কনফিগারযোগ্য ফ্রেমওয়ার্ক যা MVC (Model-View-Controller) আর্কিটেকচার অনুসরণ করে। একটি Struts 2 অ্যাপ্লিকেশন সাধারণত অনেকগুলো ফোল্ডার এবং কনফিগারেশন ফাইল নিয়ে গঠিত হয়। এই গঠনটি অ্যাপ্লিকেশনটির রক্ষণাবেক্ষণ এবং স্কেলিবিলিটি সহজ করে তোলে।

এখানে Struts 2 অ্যাপ্লিকেশনের সাধারণ স্ট্রাকচার এবং ফোল্ডার কনফিগারেশন নিয়ে আলোচনা করা হবে।


Struts 2 অ্যাপ্লিকেশন স্ট্রাকচার

Struts 2 অ্যাপ্লিকেশনটির ফোল্ডার স্ট্রাকচার সাধারণত নিচের মতো থাকে:

MyStruts2App/
│
├── src/                            # Java source files
│   ├── com/
│   │   ├── example/
│   │   │   ├── action/             # Action classes (Java files)
│   │   │   └── model/              # Model classes (Java files)
│   └── ...
│
├── WebContent/                     # Web application content
│   ├── WEB-INF/                    # Web configuration files
│   │   ├── struts.xml              # Struts 2 configuration file
│   │   ├── web.xml                 # Servlet configuration file
│   │   ├── classes/                # Compiled class files (automatically generated)
│   │   ├── lib/                    # External libraries (JAR files)
│   │   └── tlds/                   # Tag Library Descriptor (optional)
│   ├── index.jsp                   # Home page JSP
│   ├── login.jsp                   # Example login page
│   └── ...
│
└── pom.xml                         # Maven configuration (if using Maven)

Struts 2 ফোল্ডার কনফিগারেশন বিশ্লেষণ

১. src/ (Java Source Files)

এই ফোল্ডারটি Java কোড ধারণ করে। এখানে Action classes, Model classes, এবং অন্যান্য Java ক্লাসগুলি থাকবে। Struts 2 অ্যাপ্লিকেশন সাধারণত নিচের ধরনের ফোল্ডার সংরক্ষণ করে:

  • action/: এখানে অ্যাকশন ক্লাসগুলি থাকে যা ব্যবহারকারীর ইনপুট প্রক্রিয়া করে এবং ফলাফল প্রদান করে।
  • model/: এখানে মডেল ক্লাস থাকে, যা সাধারণত ডাটাবেস, ভ্যালিডেশন, বা অন্যান্য ব্যবসায়িক লজিক ধারণ করে।

২. WebContent/

এই ফোল্ডারটি JSP (Java Server Pages), HTML, CSS, এবং JavaScript ফাইলসহ ওয়েব কন্টেন্ট ধারণ করে। এটি ইউজার ইন্টারফেস বা ভিউ অংশ থাকে, যেখানে সব ধরনের গ্রাফিকাল উপাদান থাকে।

  • WEB-INF/: এটি সবচেয়ে গুরুত্বপূর্ণ ফোল্ডার যেখানে কনফিগারেশন ফাইল এবং অন্যান্য গুরুত্বপূর্ণ ফাইল থাকে।
    • struts.xml: Struts 2 এর প্রধান কনফিগারেশন ফাইল, যেখানে অ্যাকশন, রিসাল্ট এবং ইন্টারসেপ্টর কনফিগার করা হয়।
    • web.xml: এটি একটি সাধারণ Servlet কনফিগারেশন ফাইল যা Struts 2 ফিল্টার এবং অন্যান্য ওয়েব সার্ভিস কনফিগার করে।
    • lib/: এখানে অ্যাপ্লিকেশনটির বাইরের লাইব্রেরি (JAR ফাইল) রাখা হয়।
    • classes/: এটি স্বয়ংক্রিয়ভাবে জেনারেটেড ক্লাস ফাইলগুলির জন্য ফোল্ডার।
    • tlds/: Tag Library Descriptor (TLD) ফাইলগুলি যদি কাস্টম ট্যাগ লাইব্রেরি ব্যবহার করা হয়, তবে সেগুলি এখানে থাকে।
  • index.jsp: অ্যাপ্লিকেশনের হোম পেজ বা অ্যাকশন যেখানে ব্যবহারকারী প্রথমে ঢোকেন।

৩. pom.xml (যদি Maven ব্যবহৃত হয়)

যদি আপনি Maven ব্যবহার করেন, তবে এই ফাইলটি আপনার প্রকল্পের ডিপেনডেন্সি, প্লাগইন, এবং অন্যান্য কনফিগারেশন ধারণ করবে।


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

১. struts.xml

struts.xml হল Struts 2 এর প্রধান কনফিগারেশন ফাইল, যেখানে অ্যাকশন এবং ফলস্বরূপ (results) কনফিগার করা হয়। এটি অ্যাকশন, রিকোয়েস্ট ম্যাপিং, ইন্টারসেপ্টর, এবং রাউটিং কনফিগার করে।

উদাহরণ:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE struts PUBLIC "-//Apache Struts//DTD Struts Configuration 2.0//EN" "http://struts.apache.org/dtds/struts-2.0.dtd">
<struts>
    <package name="default" extends="struts-default">
        <action name="login" class="com.example.action.LoginAction" method="execute">
            <result name="success">/welcome.jsp</result>
            <result name="input">/login.jsp</result>
        </action>
    </package>
</struts>

ব্যাখ্যা:

  • package: এটি অ্যাকশন প্যাকেজের নাম সংজ্ঞায়িত করে। এখানে "default" প্যাকেজ ডিফাইন করা হয়েছে, যা struts-default-এ এক্সটেন্ড করা হয়েছে।
  • action: name অ্যাকশনের URL পাথ এবং class অ্যাকশন ক্লাসের পাথ নির্ধারণ করে।
  • result: ফলস্বরূপ, অর্থাৎ অ্যাকশন সফল হলে কোথায় রিডিরেক্ট হবে তা উল্লেখ করা হয়।

২. web.xml

web.xml ফাইলটি ওয়েব অ্যাপ্লিকেশন কনফিগারেশন ফাইল হিসেবে কাজ করে, যেখানে সার্ভলেট মেপিং, ফিল্টার কনফিগারেশন এবং অন্যান্য সার্ভিস নির্ধারণ করা হয়।

উদাহরণ:

<web-app xmlns="http://java.sun.com/xml/ns/javaee"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
             http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"
         version="3.0">
    <filter>
        <filter-name>struts2</filter-name>
        <filter-class>org.apache.struts2.dispatcher.filter.StrutsPrepareAndExecuteFilter</filter-class>
    </filter>

    <filter-mapping>
        <filter-name>struts2</filter-name>
        <url-pattern>/</url-pattern>
    </filter-mapping>
</web-app>

ব্যাখ্যা:

  • StrutsPrepareAndExecuteFilter: এটি Struts 2 ফিল্টার যা অ্যাকশন প্রক্রিয়া এবং রাউটিং পরিচালনা করে।
  • url-pattern: সব রিকোয়েস্টকে এই ফিল্টারের মাধ্যমে প্রক্রিয়া করতে এটি / পাথে ম্যাপ করা হয়েছে।

সারাংশ

Struts 2 ফ্রেমওয়ার্কটি একটি MVC (Model-View-Controller) আর্কিটেকচার অনুসরণ করে এবং Java-based ওয়েব অ্যাপ্লিকেশন তৈরি করতে ব্যবহৃত হয়। Struts 2 অ্যাপ্লিকেশনের ফোল্ডার স্ট্রাকচার এবং কনফিগারেশন ফাইলগুলো স্পষ্টভাবে আলাদা করে রেখেছে:

  • struts.xml ফাইলে অ্যাকশন, রিকোয়েস্ট ম্যাপিং এবং ফলস্বরূপ কনফিগার করা হয়।
  • web.xml ফাইলটি সার্ভলেট এবং ফিল্টার কনফিগারেশন পরিচালনা করে।
  • src/ ফোল্ডারে Java কোড থাকে, যেখানে অ্যাকশন ক্লাস এবং মডেল ক্লাস থাকে।
  • WebContent/ ফোল্ডারে JSP, HTML, এবং অন্যান্য ওয়েব কন্টেন্ট থাকে।

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

Content added By
Promotion

Are you sure to start over?

Loading...