JSF (JavaServer Faces) ফ্রেমওয়ার্কে Outcome এবং Action দুটি গুরুত্বপূর্ণ কনসেপ্ট যা ব্যবহারকারীর ইনপুট এবং অ্যাকশনের মাধ্যমে নেভিগেশন এবং লজিক কার্যকর করতে ব্যবহৃত হয়। এগুলি মূলত Managed Beans এবং UI কম্পোনেন্টের মাধ্যমে পেজ নেভিগেশন এবং ফ্লো কন্ট্রোল করার জন্য ব্যবহৃত হয়।
Action এবং Outcome কি?
- Action: JSF তে Action হল একটি মেথড যা সাধারণত ইউজারের কোনো ইনপুট (যেমন ফর্ম সাবমিট) বা অ্যাকশনের পর কল হয়। এটি ইউজারের ইনপুট গ্রহণ এবং পরবর্তী অ্যাকশন (যেমন নেভিগেশন) নির্ধারণ করার জন্য ব্যবহৃত হয়। Action একটি String রিটার্ন করে, যা পরবর্তী পৃষ্ঠার নাম বা নেভিগেশন আউটকাম হিসেবে ব্যবহৃত হয়।
- Outcome: Outcome হল সেই মান যা Action মেথড রিটার্ন করে, এবং JSF তে এটি একটি পেজ বা রিসোর্সের নামকে নির্দেশ করে, যার মাধ্যমে নেভিগেশন রুল অনুযায়ী পরবর্তী পেজে নেভিগেট করা হবে।
Action এবং Outcome এর ব্যবহারের নিয়ম
১. Action Method
Action Method এমন একটি মেথড যা JSF এর কম্পোনেন্টের action অ্যাট্রিবিউটের মাধ্যমে ট্রিগার হয়। এই মেথডটি ইউজারের ইনপুট গ্রহণ করে এবং Outcome রিটার্ন করে, যা পরবর্তী পৃষ্ঠায় নেভিগেট করতে ব্যবহৃত হয়।
Action Method ব্যবহারের উদাহরণ:
@ManagedBean
@RequestScoped
public class LoginBean {
private String username;
private String password;
// Getters and Setters
public String login() {
if ("admin".equals(username) && "admin123".equals(password)) {
return "home"; // Outcome - redirects to 'home.xhtml'
}
return "loginFailure"; // Outcome - redirects to 'loginFailure.xhtml'
}
}
এখানে:
- login() মেথডটি একটি Action হিসেবে কাজ করে। ইউজার নাম এবং পাসওয়ার্ড যাচাই করার পর, এটি home.xhtml অথবা loginFailure.xhtml পৃষ্ঠায় নেভিগেট করার আউটকাম রিটার্ন করবে।
২. Outcome
Outcome হল একটি String মান যা Action মেথডের মাধ্যমে রিটার্ন করা হয় এবং এটি পরবর্তী পৃষ্ঠায় নেভিগেট করার জন্য ব্যবহৃত হয়। JSF পেজ নেভিগেশন রুল অনুযায়ী, আউটকামের মান অনুসারে পরবর্তী পৃষ্ঠায় নেভিগেট করা হয়।
Outcome ব্যবহারের উদাহরণ:
JSF পেজ (XHTML):
<h:form>
<h:inputText value="#{loginBean.username}" required="true" />
<h:inputSecret value="#{loginBean.password}" required="true" />
<h:commandButton value="Login" action="#{loginBean.login}" />
</h:form>
এখানে:
action="#{loginBean.login}"JSF কম্পোনেন্টেরactionঅ্যাট্রিবিউটটিlogin()মেথড কল করবে।- যদি ইউজার নাম এবং পাসওয়ার্ড সঠিক হয়, তাহলে
login()মেথড"home"আউটকাম রিটার্ন করবে, যা পরবর্তী পৃষ্ঠার নাম হবে। অন্যথায়"loginFailure"আউটকাম রিটার্ন হবে।
৩. Navigation Rules (faces-config.xml)
JSF 2.0 থেকে, পেজ নেভিগেশন রুল faces-config.xml ফাইলে কনফিগার করা যেতে পারে। এখানে, আপনি বিভিন্ন আউটকাম অনুযায়ী পেজ রিডাইরেক্ট বা নেভিগেশন রুল নির্ধারণ করতে পারেন।
faces-config.xml উদাহরণ:
<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">
<navigation-rule>
<from-view-id>/login.xhtml</from-view-id>
<navigation-case>
<from-outcome>home</from-outcome>
<to-view-id>/home.xhtml</to-view-id>
</navigation-case>
<navigation-case>
<from-outcome>loginFailure</from-outcome>
<to-view-id>/loginFailure.xhtml</to-view-id>
</navigation-case>
</navigation-rule>
</faces-config>
এখানে:
- from-view-id হল যে পৃষ্ঠাটি থেকে নেভিগেশন শুরু হবে (যেমন
/login.xhtml)। - from-outcome হল Action মেথড থেকে রিটার্ন করা আউটকাম (যেমন
"home"অথবা"loginFailure"). - to-view-id হল পরবর্তী পৃষ্ঠার পাথ যেখানে ইউজারকে রিডাইরেক্ট করা হবে।
Action এবং Outcome এর প্রভাব JSF অ্যাপ্লিকেশনে
- Action Method ইউজারের ইনপুট হ্যান্ডল করে এবং Outcome রিটার্ন করে যা পরবর্তী পৃষ্ঠার জন্য নির্দেশিকা দেয়।
- Outcome রিটার্ন করার পর, JSF এর নেভিগেশন সিস্টেম faces-config.xml অথবা
@ManagedBeanনেভিগেশন রুল অনুসারে পৃষ্ঠায় নেভিগেট করে। - Outcome সাধারণত স্ট্রিং মানে থাকে, এবং এটি পৃষ্ঠার নাম বা রিডাইরেক্ট আউটপুট হিসেবে ব্যবহৃত হয়।
সারাংশ
JSF ফ্রেমওয়ার্কে Action এবং Outcome দুটি অত্যন্ত গুরুত্বপূর্ণ কনসেপ্ট যা পেজ নেভিগেশন এবং ইনপুট হ্যান্ডলিং এর জন্য ব্যবহৃত হয়। Action Method ইউজারের অ্যাকশন অনুযায়ী লজিক পরিচালনা করে এবং একটি Outcome রিটার্ন করে, যা পরবর্তী পৃষ্ঠায় নেভিগেট করার জন্য ব্যবহৃত হয়। JSF এর faces-config.xml ফাইলে নেভিগেশন রুল কনফিগার করা হয়, যা আউটকামের ভিত্তিতে ইউজারকে পরবর্তী পৃষ্ঠায় রিডাইরেক্ট করে।
Read more