Managed Bean কনফিগারেশন

JSF কনফিগারেশন ফাইল (faces-config.xml) - জেএসএফ (JSF) - Web Development

191

JSF (JavaServer Faces) ফ্রেমওয়ার্কে Managed Beans এমন JavaBeans যা JSF কনটেইনার দ্বারা পরিচালিত হয় এবং ব্যবহারকারীর ইনপুট গ্রহণ, ব্যবসায়িক লজিক পরিচালনা, এবং UI উপাদানগুলির সাথে ডেটা বিনিময় করার জন্য ব্যবহৃত হয়। Managed Bean কনফিগারেশন হল সেই প্রক্রিয়া যার মাধ্যমে আপনি Managed Bean তৈরি করেন এবং সেগুলিকে JSF কনটেইনারের সাথে যুক্ত করেন, যাতে সেগুলি কার্যকরীভাবে পরিচালিত হতে পারে।

Managed Bean কনফিগারেশন সাধারণত দুইভাবে করা যায়: অ্যানোটেশন ব্যবহার করে এবং faces-config.xml ফাইলের মাধ্যমে

Managed Bean কনফিগারেশন: অ্যানোটেশন ব্যবহার করে


JSF 2.0 থেকে Managed Beans কনফিগার করার জন্য অ্যানোটেশন ব্যবহার করা যেতে পারে, যা কোডের মধ্যে সরাসরি ব্যবহৃত হয়। এর ফলে কনফিগারেশন আরও সহজ এবং পরিষ্কার হয়ে ওঠে।

Managed Bean তৈরি ও কনফিগারেশন (অ্যানোটেশন)

Managed Beans সাধারণত @ManagedBean অ্যানোটেশন দিয়ে চিহ্নিত করা হয়। তবে, JSF 2.0 এ @Named অ্যানোটেশন ব্যবহৃত হয়, যা CDI (Contexts and Dependency Injection) এর সাথে সামঞ্জস্যপূর্ণ এবং অধিক নমনীয়তা প্রদান করে।

Managed Bean উদাহরণ:
import javax.inject.Named;
import javax.enterprise.context.SessionScoped;
import java.io.Serializable;

@Named
@SessionScoped
public class UserBean implements Serializable {
    private String username;

    // Getter এবং Setter
    public String getUsername() {
        return username;
    }

    public void setUsername(String username) {
        this.username = username;
    }

    // ব্যাবসায়িক লজিক
    public String submit() {
        return "welcome";
    }
}

এখানে @Named অ্যানোটেশনটি Managed Bean হিসেবে UserBean ক্লাসটি চিহ্নিত করে এবং @SessionScoped অ্যানোটেশনটি নিশ্চিত করে যে এটি একটি সেশন স্কোপে চলবে, অর্থাৎ ব্যবহারকারীর সেশন জীবন্ত থাকা পর্যন্ত এই Bean সক্রিয় থাকবে। Serializable ইন্টারফেস ইমপ্লিমেন্ট করা হয় যাতে Managed Beanটি সেশন স্কোপে সংরক্ষিত হতে পারে।

Managed Bean কনফিগারেশন: faces-config.xml ফাইলের মাধ্যমে


JSF 1.x এ Managed Beans কনফিগার করতে faces-config.xml ফাইল ব্যবহার করা হতো, তবে JSF 2.0 থেকে অ্যানোটেশন ব্যবহারের প্রচলন বেশি। তবুও, কিছু পরিস্থিতিতে faces-config.xml ফাইল ব্যবহার করা যেতে পারে।

faces-config.xml ফাইলের মাধ্যমে Managed Bean কনফিগারেশন উদাহরণ:
<faces-config 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-facesconfig_2_0.xsd"
              version="2.0">

    <managed-bean>
        <managed-bean-name>UserBean</managed-bean-name>
        <managed-bean-class>com.example.UserBean</managed-bean-class>
        <managed-bean-scope>session</managed-bean-scope>
    </managed-bean>
</faces-config>

এখানে faces-config.xml ফাইলে Managed Bean কনফিগার করা হয়েছে। managed-bean-name হল Bean এর নাম, যা JSF পেজে ব্যবহার করা হবে। managed-bean-class এ Bean এর পূর্ণ ক্লাস নাম দেওয়া হয় এবং managed-bean-scope দ্বারা Bean এর স্কোপ নির্ধারণ করা হয়। উপরের উদাহরণে এটি session স্কোপে কনফিগার করা হয়েছে।

Managed Bean এর স্কোপ


Managed Beans এর স্কোপ JSF কনটেইনার দ্বারা নির্ধারিত হয় এবং এটি তাদের জীবনকাল ও ব্যবহারের সময়কালের সাথে সম্পর্কিত। JSF এর মধ্যে সাধারণত চারটি স্কোপ ব্যবহৃত হয়:

  • Request Scope (অনুরোধ স্কোপ): Managed Bean শুধুমাত্র এক HTTP রিকোয়েস্টের জন্য জীবিত থাকে এবং পরবর্তী রিকোয়েস্টে ধ্বংস হয়ে যায়।
  • Session Scope (সেশন স্কোপ): Managed Bean ব্যবহারকারীর সেশন জীবন্ত থাকা পর্যন্ত চালু থাকে।
  • Application Scope (অ্যাপ্লিকেশন স্কোপ): Managed Bean অ্যাপ্লিকেশন শুরু থেকে শেষ পর্যন্ত জীবিত থাকে।
  • View Scope (ভিউ স্কোপ): Managed Bean JSF পেজের ভিউ (যেমন ফরম) রেন্ডার হওয়ার সময় থেকে জীবিত থাকে এবং পেজ রিফ্রেশ না হওয়া পর্যন্ত।

Managed Bean কনফিগারেশনে CDI (Contexts and Dependency Injection)


JSF 2.0 এ CDI (Contexts and Dependency Injection) এর সমর্থন যুক্ত করা হয়েছে, যার মাধ্যমে আপনি আরো শক্তিশালী এবং নমনীয় Managed Bean কনফিগারেশন করতে পারেন। এর মাধ্যমে আপনি Dependency Injection, Event Handling এবং Scoped Beans-এর সুবিধা লাভ করতে পারেন।

@Inject অ্যানোটেশনটি আপনাকে সহজে Managed Beans ইনজেক্ট করতে সাহায্য করে। উদাহরণস্বরূপ:

import javax.inject.Inject;
import javax.enterprise.context.RequestScoped;
import javax.inject.Named;

@Named
@RequestScoped
public class UserBean {
    @Inject
    private UserService userService;

    // ব্যাবসায়িক লজিক
}

এখানে @Inject অ্যানোটেশন ব্যবহার করা হয়েছে UserService ক্লাস ইনজেক্ট করার জন্য, যা CDI এর সাহায্যে Managed Bean এ Inject হয়ে গেছে।

Managed Bean কনফিগারেশন এর সুবিধা


  • কোডের পরিষ্কারতা: অ্যানোটেশন ব্যবহারের মাধ্যমে কোড আরও সহজ, পরিষ্কার এবং সহজে পড়া যায়।
  • বিকল্প কনফিগারেশন: Faces-config.xml এবং অ্যানোটেশন ব্যবহারের মাধ্যমে দুইভাবে Managed Beans কনফিগার করা যায়, যা ডেভেলপারদের সুবিধা প্রদান করে।
  • Scoped Beans: Managed Beans এর স্কোপ সঠিকভাবে কনফিগার করার মাধ্যমে অ্যাপ্লিকেশনটির কার্যক্ষমতা এবং ব্যবস্থাপনা সহজ করা যায়।

সারাংশ


JSF Managed Beans কনফিগারেশন দুটি প্রধান পদ্ধতিতে করা যায়—অ্যানোটেশন ব্যবহার করে অথবা faces-config.xml ফাইলের মাধ্যমে। JSF 2.0 এর পর অ্যানোটেশন ব্যবহারের প্রচলন বেড়েছে, যা কোডকে পরিষ্কার ও কার্যকরী করে তোলে। Managed Beans এর স্কোপ নির্ধারণের মাধ্যমে বিভিন্ন জীবনকাল নির্ধারণ করা যায়, যেমন request, session, application, এবং view স্কোপ। JSF Managed Beans এবং CDI ব্যবহারের মাধ্যমে শক্তিশালী এবং নমনীয় ওয়েব অ্যাপ্লিকেশন ডেভেলপ করা সম্ভব।

Content added By
Promotion

Are you sure to start over?

Loading...