Struts 2 একটি মডুলার এবং কনফিগারেবল ওয়েব ফ্রেমওয়ার্ক যা MVC (Model-View-Controller) আর্কিটেকচার অনুসরণ করে। Result এবং Result Types এই ফ্রেমওয়ার্কে একটি গুরুত্বপূর্ণ ভূমিকা পালন করে, কারণ এগুলি রিকোয়েস্টের প্রক্রিয়া সম্পন্ন করার পর কোন ভিউ বা পৃষ্ঠায় ইউজারকে রিডিরেক্ট করতে সাহায্য করে।
Result এবং Result Types Struts 2 অ্যাপ্লিকেশনের ফলস্বরূপ প্রদর্শন বা ইউজারের ইনপুট প্রসেসিং এর পর যে পৃষ্ঠা রিডিরেক্ট হবে তা নির্ধারণ করতে ব্যবহৃত হয়।
১. Result (ফলস্বরূপ)
Struts 2-এ Result হল একটি নির্দিষ্ট ফলস্বরূপ বা আউটপুট, যা অ্যাকশন ক্লাসের কার্যক্রম সফল বা ব্যর্থ হলে JSP বা অন্য কোনো ভিউ (View) পৃষ্ঠায় রিডিরেক্ট করে। Result কে আমরা অ্যাকশন ক্লাসে নির্ধারণ করি এবং এটি ব্যবহারকারীকে একটি নির্দিষ্ট পৃষ্ঠায় রিডিরেক্ট করতে সাহায্য করে, যেমন login.jsp, welcome.jsp, ইত্যাদি।
কেন প্রয়োজন?
- Result ব্যবহারকারীকে ইউজার ইন্টারফেসের জন্য নির্দিষ্ট পৃষ্ঠা বা রিসাল্টে রিডিরেক্ট করতে সহায়তা করে।
- এটি Action class এর ভিউ বা ফলস্বরূপ কনফিগারেশনের মাধ্যমে ব্যবহৃত হয়, যা JSP, HTML, অথবা অন্যান্য পৃষ্ঠায় আউটপুট প্রদান করে।
Result উদাহরণ:
<action name="login" class="com.example.LoginAction" method="execute">
<result name="success">/welcome.jsp</result>
<result name="input">/login.jsp</result>
</action>
ব্যাখ্যা:
- success রিটার্ন হলে ব্যবহারকারীকে welcome.jsp পৃষ্ঠায় রিডিরেক্ট করা হবে।
- input রিটার্ন হলে ব্যবহারকারীকে login.jsp পৃষ্ঠায় রিডিরেক্ট করা হবে।
২. Result Types (ফলস্বরূপ টাইপ)
Struts 2-এ Result Types হল একাধিক ধরনের ফলস্বরূপ, যার মাধ্যমে আমরা নির্দিষ্ট কাজ করতে পারি, যেমন রিডিরেক্ট, ফরওয়ার্ড, ফাইল ডাউনলোড, অথবা অন্য কোনো ভিউ রেন্ডার করা। বিভিন্ন Result Types ব্যবহারের মাধ্যমে অ্যাকশন ফলস্বরূপের প্রকার নির্ধারণ করা হয়।
Struts 2 বিভিন্ন Result Types সরবরাহ করে, যা আপনার অ্যাপ্লিকেশনটির কার্যকারিতা বাড়াতে সাহায্য করে। কিছু জনপ্রিয় Result Types হল:
- dispatcher (ডিফল্ট): এটি একটি সাধারণ ফরওয়ার্ড রেজাল্ট টাইপ, যা অ্যাকশন মেথডের পর ভিউ পৃষ্ঠায় রিডিরেক্ট করে।
- redirect: এটি একটি HTTP রিডিরেক্ট রেজাল্ট টাইপ, যা ইউজারকে নতুন URL তে রিডিরেক্ট করে।
- chain: এটি একটি অ্যাকশন চেইন রেজাল্ট টাইপ, যা একটি অ্যাকশন থেকে অন্য অ্যাকশনে রিডিরেক্ট করে।
- stream: এটি একটি ফাইল স্ট্রিম রেজাল্ট টাইপ, যা ইউজারকে একটি ফাইল ডাউনলোডের জন্য প্রদান করে।
- tiles: এটি Apache Tiles ব্যবহার করে টেমপ্লেট ভিত্তিক রেন্ডারিং করে।
কেন প্রয়োজন?
- Result Types ব্যবহার করে আমরা অ্যাকশন ফলস্বরূপের আচরণ নির্ধারণ করতে পারি।
- এটি ভিউ পৃষ্ঠার ধরনের উপর নির্ভর করে ইন্টারঅ্যাকশন পরিচালনা করে, যেমন ফর্ম সাবমিশন, রিডিরেকশন, বা ডাউনলোড।
- বিভিন্ন অ্যাপ্লিকেশন পরিস্থিতির জন্য উপযুক্ত ফলস্বরূপ নির্বাচন করার মাধ্যমে অ্যাপ্লিকেশনটি আরো কার্যকরী হয়ে ওঠে।
Result Types এর উদাহরণ:
<action name="login" class="com.example.LoginAction" method="execute">
<result name="success" type="dispatcher">/welcome.jsp</result>
<result name="loginError" type="redirect">/login.jsp</result>
<result name="download" type="stream">/files/sample.pdf</result>
</action>
ব্যাখ্যা:
- dispatcher: যদি success রিটার্ন হয়, তখন welcome.jsp পৃষ্ঠায় ফরওয়ার্ড হবে।
- redirect: যদি loginError রিটার্ন হয়, তখন login.jsp পৃষ্ঠায় HTTP রিডিরেক্ট হবে।
- stream: যদি download রিটার্ন হয়, তখন ব্যবহারকারীকে sample.pdf ফাইল ডাউনলোড করার জন্য প্রদান করা হবে।
Struts 2-এ Common Result Types:
- dispatcher (ডিফল্ট):
- Description: এটি সবচেয়ে সাধারণ ফলস্বরূপ, যা ভিউ পৃষ্ঠার মধ্যে এক অ্যাকশন থেকে অন্য অ্যাকশনে ফরওয়ার্ড করতে ব্যবহৃত হয়।
Example:
<result name="success" type="dispatcher">/success.jsp</result>
- redirect:
- Description: এটি HTTP রিডিরেক্ট ফলস্বরূপ টাইপ, যা নতুন পৃষ্ঠায় রিডিরেক্ট করে।
Example:
<result name="success" type="redirect">/home.jsp</result>
- chain:
- Description: এটি এক অ্যাকশন থেকে অন্য অ্যাকশন চেইন করতে ব্যবহৃত হয়। অর্থাৎ, একটি অ্যাকশন থেকে আরেকটি অ্যাকশন কল হবে।
Example:
<result name="nextAction" type="chain">nextAction</result>
- stream:
- Description: এটি ফাইল স্ট্রিমের মাধ্যমে একটি ফাইল ইউজারের কাছে পাঠানোর জন্য ব্যবহৃত হয়, যেমন ডাউনলোড ফাইল।
Example:
<result name="download" type="stream">/path/to/file.pdf</result>
- tiles:
- Description: এটি Apache Tiles টেমপ্লেট ইঞ্জিন ব্যবহার করে পেজ টেমপ্লেট রেন্ডার করে।
Example:
<result name="success" type="tiles">welcomePage</result>
সারাংশ
Result এবং Result Types Struts 2 এর একটি গুরুত্বপূর্ণ অংশ, যা অ্যাকশন ক্লাস থেকে ইউজারের রিকোয়েস্ট অনুযায়ী উপযুক্ত ভিউ বা ফলস্বরূপ নির্ধারণ করতে সহায়ক। Result হল ফলস্বরূপ পেজ বা ভিউ, যেখানে Result Types তা কিভাবে প্রক্রিয়া হবে (ফরওয়ার্ড, রিডিরেক্ট, ফাইল ডাউনলোড ইত্যাদি) তা নির্ধারণ করে। Struts 2-এর dispatcher, redirect, chain, stream, এবং tiles এর মতো Result Types অ্যাপ্লিকেশনটির কার্যকারিতা এবং ভিউ পরিবর্তন করার জন্য ব্যবহার করা হয়।
Read more