Action কি এবং এর ভূমিকা

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

391

Action ক্লাসটি Struts 2 ফ্রেমওয়ার্কের একটি গুরুত্বপূর্ণ অংশ এবং এটি MVC (Model-View-Controller) আর্কিটেকচারের Controller এর ভূমিকা পালন করে। Action হল একটি জাভা ক্লাস যা ইউজারের রিকুয়েস্ট (যেমন, ফর্ম সাবমিশন বা URL থেকে পাওয়া রিকুয়েস্ট) প্রক্রিয়া করে, বিজনেস লজিক সম্পাদন করে এবং উপযুক্ত ভিউ (যেমন, JSP বা অন্য কোনো পেজ) প্রদর্শন করার জন্য একটি রেসপন্স রিটার্ন করে।

Struts 2 Action ক্লাসটি ইউজারের ইনপুট প্রক্রিয়া এবং বিজনেস লজিকের জন্য দায়ী, এবং এটি সাধারণত ActionSupport বা Action ক্লাস থেকে এক্সটেন্ড করা হয়।


Action ক্লাসের ভূমিকা

  1. ইউজারের ইনপুট গ্রহণ:
    • Action ক্লাস ইউজারের কাছ থেকে ইনপুট গ্রহণ করে (যেমন ফর্ম ডেটা) এবং এটি প্রসেস করে।
    • Struts 2 ফ্রেমওয়ার্ক OGNL (Object-Graph Navigation Language) ব্যবহার করে ফর্ম ডেটা স্বয়ংক্রিয়ভাবে Action ক্লাসের প্রপার্টিতে ম্যাপ করে।
  2. বিজনেস লজিক সম্পাদন:
    • Action ক্লাসে ব্যবহারকারীর ইনপুট ডেটার উপর বিভিন্ন প্রক্রিয়া যেমন ডেটা ভ্যালিডেশন, লজিক্যাল ক্যালকুলেশন, এবং ডেটাবেজ এক্সেস করা হয়।
  3. রেসপন্স রিটার্ন করা:
    • Action ক্লাস সফলভাবে কাজ করলে এটি success, error, বা অন্য যে কোন রিটার্ন ভ্যালু প্রদান করতে পারে যা Struts 2 কনফিগারেশন ফাইলে (struts.xml) সেট করা থাকে।
    • রিটার্ন ভ্যালু অ্যাকশন বা রেসাল্ট পেজে গাইড করে, যেমন সফল হলে একটি JSP পেজ রিটার্ন করা হতে পারে।
  4. রাউটিং:
    • Struts 2-এ, Action ক্লাসগুলি struts.xml কনফিগারেশন ফাইলে ম্যাপ করা হয়। এই ফাইলটি অ্যাকশন নাম এবং প্রক্রিয়া কোন অ্যাকশন ক্লাস দ্বারা পরিচালিত হবে তা নির্ধারণ করে।

Action ক্লাস তৈরি করা

Action ক্লাস তৈরি করতে, সাধারণত Action বা ActionSupport ক্লাস থেকে এক্সটেন্ড করা হয়। ActionSupport কনভেনিয়েন্স মেথড যেমন getText(), addActionError(), addActionMessage() ইত্যাদি প্রদান করে যা আপনাকে Action ক্লাস লেখতে সহজ করে তোলে।

উদাহরণ: Action ক্লাস

package com.example;

import com.opensymphony.xwork2.ActionSupport;

public class HelloWorldAction extends ActionSupport {
    private String name;
    private String message;

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

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

    public String getMessage() {
        return message;
    }

    // execute() method that will be called
    @Override
    public String execute() throws Exception {
        // ব্যবসায়িক লজিক বা প্রক্রিয়া
        if (name == null || name.isEmpty()) {
            addActionError("Name is required");
            return ERROR;  // If there's an error, return ERROR
        }
        message = "Hello, " + name;
        return SUCCESS;  // If successful, return SUCCESS
    }
}

কোড ব্যাখ্যা:

  • এই Action ক্লাসটি ব্যবহারকারীর কাছ থেকে name ইনপুট গ্রহণ করে এবং যদি name প্রেরণ করা না থাকে তবে একটি error বার্তা প্রদান করবে।
  • যদি name দেওয়া হয়, তবে এটি একটি "Hello, name" বার্তা তৈরি করবে এবং SUCCESS রিটার্ন করবে।
  • execute() মেথডটি ক্লাসের প্রধান মেথড যা অ্যাকশনের মূল কার্যক্রম সম্পাদন করে।

Struts 2 এ Action এর কনফিগারেশন

Struts 2-এ Action ক্লাসের কনফিগারেশন struts.xml ফাইলে করা হয়, যেখানে অ্যাকশন, তার ক্লাস, এবং রিটার্ন ভ্যালুগুলোর ম্যাপিং থাকে।

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

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

কোড ব্যাখ্যা:

  • name="hello": এটি URL প্যাটার্ন নির্দেশ করে, যেমন http://localhost:8080/hello.
  • class="com.example.HelloWorldAction": এটি অ্যাকশন ক্লাসের পূর্ণ পাথ।
  • method="execute": এটি নির্দেশ করে যে execute() মেথডটি অ্যাকশন প্রসেসিং শুরু করবে।
  • SUCCESS বা ERROR রিটার্ন হলে সংশ্লিষ্ট JSP পেজে রিডাইরেক্ট হবে।

Action এর বিভিন্ন রিটার্ন ভ্যালু

Struts 2-এ, Action ক্লাস থেকে রিটার্ন হওয়া বিভিন্ন স্ট্রিং ভ্যালু struts.xml-এ ডিফাইন করা রেসাল্টের সাথে সম্পর্কিত থাকে। কয়েকটি সাধারণ রিটার্ন ভ্যালু হলো:

  • SUCCESS: সাধারণত অ্যাকশন সফল হলে রিটার্ন হয় এবং SUCCESS নামের রেসাল্ট পেজে রিডাইরেক্ট করা হয়।
  • ERROR: যদি কোনও সমস্যা থাকে (যেমন, ইনপুট ভ্যালিডেশন), তবে ERROR রিটার্ন হয় এবং এর সাথে সংশ্লিষ্ট পেজে রিডাইরেক্ট করা হয়।
  • INPUT: যদি ইউজার ইনপুট সঠিক না হয়, তাহলে INPUT রিটার্ন করা হয় এবং ইনপুট ফর্ম আবার প্রদর্শিত হয়।

Action এর বৈশিষ্ট্য

  1. বিজনেস লজিক প্রক্রিয়াকরণ: Action ক্লাস ব্যবহারকারীর ইনপুট গ্রহণ করে এবং ব্যবসায়িক লজিক প্রক্রিয়া করে, যেমন ডেটাবেস এক্সেস বা ফর্ম ভ্যালিডেশন।
  2. ডেটা প্রবাহ: Action ক্লাসের মাধ্যমে ডেটা ভিউ (JSP) তে প্রেরণ করা হয়।
  3. Error Handling: Action ক্লাসে অ্যাকশন পর্যায়ে ত্রুটি পরিচালনা করা হয় এবং এর মাধ্যমে ত্রুটির বার্তা error পেজে পাঠানো হয়।
  4. রিটার্ন স্ট্রিং: Action ক্লাস থেকে রিটার্ন হওয়া স্ট্রিংগুলি কনফিগার করা রেসাল্ট পেজে রিডাইরেক্ট করে।

উপসংহার

Struts 2 ফ্রেমওয়ার্কে Action ক্লাস একটি অত্যন্ত গুরুত্বপূর্ণ ভূমিকা পালন করে। এটি ইউজারের ইনপুট গ্রহণ, ব্যবসায়িক লজিক প্রক্রিয়া এবং উপযুক্ত ভিউ বা রেসাল্ট পেজে রিডাইরেক্ট করার কাজ করে। Action ক্লাসের মাধ্যমে বিভিন্ন লজিক্যাল এক্সিকিউশন পরিচালনা করা যায় এবং struts.xml কনফিগারেশন ফাইলে এর সাথে সম্পর্কিত রেসাল্ট সেট করা হয়। Struts 2 অ্যাপ্লিকেশনে Action ক্লাস একটি শক্তিশালী কন্ট্রোলার হিসেবে কাজ করে যা ডেটা প্রবাহ এবং ইউজারের ইন্টারঅ্যাকশন সঠিকভাবে পরিচালনা করে।

Content added By
Promotion

Are you sure to start over?

Loading...