Action কনফিগারেশন (struts.xml ফাইলে)

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

280

Struts 2 একটি MVC (Model-View-Controller) ফ্রেমওয়ার্ক, যেখানে Action ক্লাসটি Controller এর ভূমিকা পালন করে। struts.xml ফাইলটি Struts 2 অ্যাপ্লিকেশন কনফিগারেশন ফাইল হিসেবে ব্যবহৃত হয়, যা অ্যাকশন, রেজাল্ট এবং ইন্টারসেপ্টর কনফিগার করার জন্য ব্যবহৃত হয়।

Action কনফিগারেশন

Struts 2 এর Action কনফিগারেশন মূলত struts.xml ফাইলে করা হয়। এখানে আমরা নির্ধারণ করি কোন অ্যাকশন ক্লাসটি কোন রিকোয়েস্ট প্রক্রিয়া করবে এবং কোন রেজাল্ট (ভিউ) দেখানো হবে। Action ক্লাস এবং তার সংশ্লিষ্ট ভিউ (JSP বা অন্য কিছু) কনফিগার করার জন্য struts.xml ফাইলটি ব্যবহৃত হয়।

Struts 2 Action কনফিগারেশন এর মূল উপাদান

  1. Action Mapping:
    প্রতিটি URL প্যাটার্নের জন্য একটি নির্দিষ্ট অ্যাকশন ক্লাসের সাথে মাপিং তৈরি করা হয়।
  2. Result:
    এটি প্রতিটি অ্যাকশন ক্লাসের জন্য একটি ভিউ রেজাল্ট (যেমন, JSP পৃষ্ঠা) কনফিগার করে, যা ইউজারকে দেখানো হয়।
  3. Package:
    Struts 2 এর কনফিগারেশন প্যাকেজের মাধ্যমে অ্যাকশন ক্লাসগুলি গোষ্ঠীবদ্ধ করা যায়।

Struts 2 এর struts.xml কনফিগারেশন উদাহরণ

১. Basic Action কনফিগারেশন

এই উদাহরণে, একটি HelloAction অ্যাকশন ক্লাস তৈরি করা হয়েছে যা একটি সিম্পল মেসেজ রিটার্ন করবে।

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

<struts>
    <package name="default" namespace="/" extends="struts-default">
        <!-- Action কনফিগারেশন -->
        <action name="hello" class="com.example.HelloAction">
            <result>/hello.jsp</result>  <!-- Result যা action সম্পন্ন হলে দেখানো হবে -->
        </action>
    </package>
</struts>

HelloAction.java (Action ক্লাস):

package com.example;

import com.opensymphony.xwork2.ActionSupport;

public class HelloAction extends ActionSupport {
    private String message;

    public String execute() {
        message = "Hello, Struts 2!";
        return SUCCESS;  // Action Result
    }

    public String getMessage() {
        return message;
    }

    public void setMessage(String message) {
        this.message = message;
    }
}

hello.jsp (Result):

<%@ taglib uri="/struts-tags" prefix="s" %>
<html>
    <body>
        <h2><s:property value="message" /></h2>
    </body>
</html>

ব্যাখ্যা:

  • struts.xml ফাইলের মধ্যে, আমরা একটি অ্যাকশন নামকরণ করেছি hello। যখন ইউজার /hello URL অ্যাক্সেস করবে, তখন এটি HelloAction ক্লাসের execute() মেথড কল করবে এবং এর রিটার্ন ভ্যালু SUCCESS হলে, hello.jsp ভিউ রেন্ডার হবে।
  • execute() মেথডে একটি সিম্পল মেসেজ তৈরি করা হয়েছে, যা hello.jsp তে প্রদর্শিত হবে।

২. Action Parameters এবং Result Customization

Struts 2 এর action ট্যাগে আপনি কাস্টম parameters এবং results কনফিগার করতে পারেন। এতে অ্যাকশন ক্লাসের আর্গুমেন্ট ভ্যালু এবং ফলাফল আরো কাস্টমাইজড হতে পারে।

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

<struts>
    <package name="default" namespace="/" extends="struts-default">
        <action name="greet" class="com.example.GreetAction">
            <result name="success">/greet.jsp</result>
            <result name="error">/error.jsp</result>
        </action>
    </package>
</struts>

GreetAction.java (Action ক্লাস):

package com.example;

import com.opensymphony.xwork2.ActionSupport;

public class GreetAction extends ActionSupport {
    private String name;

    public String execute() {
        if (name == null || name.trim().isEmpty()) {
            return ERROR;
        }
        return SUCCESS;
    }

    public String getName() {
        return name;
    }

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

greet.jsp (Success Result):

<%@ taglib uri="/struts-tags" prefix="s" %>
<html>
    <body>
        <h2>Welcome, <s:property value="name" /></h2>
    </body>
</html>

error.jsp (Error Result):

<html>
    <body>
        <h2>Invalid Input. Please provide a name.</h2>
    </body>
</html>

ব্যাখ্যা:

  • এখানে, GreetAction ক্লাসটি name প্যারামিটার গ্রহণ করে। যদি name প্যারামিটার খালি বা null হয়, তবে ERROR রেজাল্ট রিটার্ন হবে এবং error.jsp ভিউ প্রদর্শিত হবে।
  • অন্যথায়, SUCCESS রেজাল্ট রিটার্ন হলে greet.jsp তে ব্যবহারকারীর নাম দেখানো হবে।

৩. Multiple Results এবং Redirect

Struts 2 তে আপনি multiple results ব্যবহার করতে পারেন, যা বিভিন্ন ফলাফল অনুযায়ী বিভিন্ন ভিউ শো করতে সাহায্য করে। এছাড়া, আপনি redirect এবং forward ব্যবহার করে রিকোয়েস্ট রিডাইরেক্ট করতে পারেন।

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

<struts>
    <package name="default" namespace="/" extends="struts-default">
        <action name="login" class="com.example.LoginAction">
            <result name="success">/home.jsp</result>
            <result name="loginError" type="redirect">/login.jsp</result>
        </action>
    </package>
</struts>

LoginAction.java (Action ক্লাস):

package com.example;

import com.opensymphony.xwork2.ActionSupport;

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

    public String execute() {
        if ("admin".equals(username) && "password".equals(password)) {
            return SUCCESS;
        }
        return "loginError";
    }

    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;
    }
}

ব্যাখ্যা:

  • এখানে, LoginAction ক্লাসটি ইউজারের username এবং password ভ্যালু যাচাই করে। যদি সঠিক হয়, তবে SUCCESS রিটার্ন করবে এবং home.jsp দেখানো হবে।
  • অন্যথায়, loginError রিটার্ন করলে রিডাইরেক্ট হয়ে login.jsp পেজে চলে যাবে।

সারাংশ

Struts 2 এর Action কনফিগারেশন struts.xml ফাইলে করা হয়। এখানে আপনি অ্যাকশন নাম, ক্লাস, রেজাল্ট (ভিউ) এবং কাস্টম প্যারামিটার কনফিগার করতে পারেন। Struts 2 তে সহজে একাধিক রেজাল্ট এবং ভিউ কাস্টমাইজ করা সম্ভব, এবং আপনি redirect, forward, error, success ইত্যাদি ফলাফল ব্যবহার করে অ্যাকশন প্রক্রিয়া পরিচালনা করতে পারেন।

Content added By
Promotion

Are you sure to start over?

Loading...