উদাহরণ সহ Plugin কনফিগার এবং ব্যবহার

Struts 2 এর Plugin ব্যবহার - স্ট্রাটস (Struts 2) - Java Technologies

270

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...