উদাহরণ সহ Value Stack এবং OGNL এর ব্যবহার

Struts 2 এর Value Stack এবং OGNL - স্ট্রাটস (Struts 2) - Java Technologies

282

Struts 2 ফ্রেমওয়ার্কে Value Stack এবং OGNL (Object-Graph Navigation Language) খুবই গুরুত্বপূর্ণ বৈশিষ্ট্য। Value Stack হল Struts 2 এর একটি মেকানিজম যা অ্যাকশন ক্লাসের ডাটা এবং অন্যান্য তথ্য মডেল (Model) থেকে ভিউ (View) এর কাছে প্রেরণ করে। OGNL হল একটি এক্সপ্রেশন ল্যাঙ্গুয়েজ যা Value Stack থেকে ডেটা অ্যাক্সেস এবং পরিবর্তন করতে ব্যবহৃত হয়। OGNL ব্যবহার করে আপনি JSP ফাইলের মধ্যে ডাটা প্রদর্শন করতে পারেন।


১. Value Stack কী?

Value Stack হল Struts 2 এর একটি ডাটা স্ট্যাক যেখানে অ্যাকশন ক্লাসের প্রপার্টি, কনফিগারেশন, সেশন, অ্যাপ্লিকেশন স্কোপের ডেটা থাকে। এটি সাধারণত Action ক্লাসের প্রপার্টি এবং তাদের মান সংরক্ষণ করে রাখে এবং সেগুলি JSP পৃষ্ঠায় প্রদর্শন করতে ব্যবহৃত হয়। Value StackAction ক্লাসের সব প্রপার্টি এবং অন্যান্য ডেটা থাকতে পারে, যা OGNL এক্সপ্রেশন ব্যবহার করে অ্যাক্সেস করা যায়।

২. OGNL কী?

OGNL হল একটি এক্সপ্রেশন ল্যাঙ্গুয়েজ যা Value Stack থেকে ডাটা অ্যাক্সেস করতে ব্যবহৃত হয়। OGNL এর মাধ্যমে আপনি Action ক্লাসের প্রপার্টি, collection, maps, এবং অন্যান্য অবজেক্টের মান পেতে পারেন এবং তা JSP তে ব্যবহার করতে পারেন।


উদাহরণ: Value Stack এবং OGNL এর ব্যবহার

এখানে একটি উদাহরণ দেওয়া হচ্ছে যেখানে আমরা Struts 2 ব্যবহার করে Value Stack এবং OGNL এর মাধ্যমে ডাটা পরিচালনা করব।

১. Action Class (HelloWorldAction.java)

package com.example;

import com.opensymphony.xwork2.ActionSupport;

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

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

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

    // Getter and Setter for 'message'
    public String getMessage() {
        return message;
    }

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

    // Execute method, where business logic is implemented
    @Override
    public String execute() {
        if (name == null || name.isEmpty()) {
            name = "Struts 2";
        }
        message = "Hello, " + name + "!";
        return SUCCESS;
    }
}
  • Action Class: এখানে, name এবং message দুটি প্রপার্টি রয়েছে। execute() মেথডে, name এর মান চেক করা হয় এবং message তৈরি করা হয়, যাতে JSP এ দেখানো যায়।

২. Struts 2 কনফিগারেশন (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>
  • struts.xml: এখানে, hello নামক অ্যাকশনটি HelloWorldAction ক্লাসের সাথে সম্পর্কিত। hello অ্যাকশন সফল হলে এটি hello.jsp পৃষ্ঠাতে রিডিরেক্ট করবে।

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

<%@ taglib uri="/struts-tags" prefix="s" %>
<html>
<head>
    <title>Hello Struts 2</title>
</head>
<body>
    <h2><s:property value="message" /></h2>
    <form action="hello" method="post">
        <s:textfield name="name" label="Enter your name" />
        <s:submit value="Say Hello" />
    </form>
</body>
</html>
  • JSP File: এখানে, আমরা Struts 2 tag library ব্যবহার করেছি:
    • <s:property value="message" /> OGNL এক্সপ্রেশন ব্যবহার করে message প্রপার্টির মান HelloWorldAction ক্লাস থেকে অ্যাক্সেস করা হয়।
    • <s:textfield name="name" label="Enter your name" /> ব্যবহারকারী থেকে নাম ইনপুট নেয়।
    • <s:submit value="Say Hello" /> বাটন ক্লিক করলে ইউজারের ইনপুট Action ক্লাসে প্রেরণ করা হয়।

Value Stack এবং OGNL এর ব্যবহার:

  • Value Stack: Action ক্লাসে name এবং message প্রপার্টিগুলি Value Stack এ রাখা হয় এবং JSP ফাইল থেকে OGNL এক্সপ্রেশন ব্যবহার করে অ্যাক্সেস করা হয়।
  • OGNL: s:property value="message" ট্যাগ ব্যবহার করে message প্রপার্টির মান Value Stack থেকে নেওয়া হয়েছে।

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

Struts 2 DispatcherServlet কনফিগার করতে 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">

    <!-- 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>
  • DispatcherServlet: এটি Struts 2 এর প্রধান সেরভলেট যা সমস্ত HTTP রিকুয়েস্ট গ্রহণ এবং প্রক্রিয়া করে।

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

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

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

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

এটি আপনাকে একটি Hello, Struts 2 বার্তা প্রদর্শন করবে এবং ব্যবহারকারী ইনপুট দিলে সেই নামের সাথে "Hello" প্রদর্শিত হবে।


সারাংশ

এই উদাহরণে, আমরা দেখলাম কীভাবে Struts 2-এ Value Stack এবং OGNL ব্যবহার করে ডাটা পরিচালনা করা যায়। Value Stack অ্যাকশন ক্লাসের প্রপার্টিগুলি সংরক্ষণ করে এবং OGNL এক্সপ্রেশন ব্যবহার করে সেগুলি JSP তে প্রদর্শন করা হয়। Struts 2 ফ্রেমওয়ার্কের মাধ্যমে সহজে MVC আর্কিটেকচার অনুসরণ করে একটি ওয়েব অ্যাপ্লিকেশন তৈরি করা যায়।

Content added By
Promotion

Are you sure to start over?

Loading...