useBean অ্যাকশন খুব ভারসেটাইল। এটি প্রথমে id এবং scope ভেরিয়েবল ব্যবহার করে বিদ্যমান অবজেক্ট খুঁজে বের করার চেষ্টা করে। অবজেক্ট না পেলে নির্দিষ্ট অবজেক্ট তৈরি করার চেষ্টা করে।
বিন লোড করার সবচেয়ে সহজ পদ্ধতি:
<jsp:useBean id = "name" class = "package.class" />
বিন ক্লাস লোড হলে, jsp:setProperty এবং jsp:getProperty অ্যাকশন ব্যবহার করে বিন প্রপার্টি মডিফাই ও রিট্রিভ করা যায়।
useBean অ্যাকশনের সাথে যুক্ত অ্যাট্রিবিউটগুলো:
| ক্রমিক নং | অ্যাট্রিবিউট ও বর্ণনা |
|---|---|
| 1 | class বিনের ফুল প্যাকেজ নাম নির্দেশ করে। |
| 2 | type অবজেক্টকে রেফার করার ভেরিয়েবলের টাইপ নির্দিষ্ট করে। |
| 3 | beanName java.beans.Beans ক্লাসের instantiate() মেথড দ্বারা নির্দিষ্ট বিনের নাম দেয়। |
এখন jsp:setProperty এবং jsp:getProperty অ্যাকশন নিয়ে আলোচনা করি তারপর এই অ্যাকশনগুলোর সাথে সম্পর্কিত একটি বৈধ উদাহরণ দিব।
The <jsp:setProperty> Action
setProperty অ্যাকশন একটি Bean-এর প্রপার্টি সেট করে। Beanটি এই অ্যাকশনের আগে ডিফাইন করা থাকতে হবে। setProperty অ্যাকশন ব্যবহারের দুটি βασিক উপায় আছে:
আপনি jsp:setProperty ব্যবহার করতে পারেন jsp:useBean এলিমেন্টের বাইরে, পরে:
<jsp:useBean id = "myName" ... /> ... <jsp:setProperty name = "myName" property = "someProperty" .../>
এই কেসে, jsp:setProperty এক্সিকিউট হবে ছাড়া নতুন বিন ইনস্ট্যানশিয়েট হয়েছে কিনা বা বিদ্যমান বিন পাওয়া গেছে কিনা।
দूसরা কনটেক্স্ট হলো jsp:useBean এলিমেন্টের বডির ভিতরে jsp:setProperty থাকা:
<jsp:useBean id = "myName" ... > ... <jsp:setProperty name = "myName" property = "someProperty" .../> </jsp:useBean>
এখানে, jsp:setProperty শুধু এক্সিকিউট হবে যদি নতুন অবজেক্ট ইনস্ট্যানশিয়েট হয়, বিদ্যমান অবজেক্ট পাওয়া গেলে নয়।
setProperty অ্যাকশনের সাথে যুক্ত অ্যাট্রিবিউটগুলো:
| ক্রমিক নং | অ্যাট্রিবিউট ও বর্ণনা |
|---|---|
| 1 | name বিন ডিজিগনেট করে যার প্রপার্টি সেট হবে। বিনটি পূর্বে ডিফাইন করা থাকতে হবে। |
| 2 | property ইন্ডিকেট করে কোন প্রপার্টি সেট করতে চান। "*" ভ্যালু মানে সব রিকোয়েস্ট প্যারামিটার যাদের নাম বিন প্রপার্টির সাথে মিলে যায়, সেটি আপনার সেটার মেথডে পাস হবে। |
| 3 | value দেওয়া প্রপার্টির জন্য অ্যাসাইন করা ভ্যালু। প্যারামিটারের ভ্যালু null হলে বা প্যারামিটার অস্তিত্ব না থাকলে setProperty অ্যাকশন উপেক্ষা করা হয়। |
| 4 | param param অ্যাট্রিবিউট হলো রিকোয়েস্ট প্যারামিটারের নাম যার ভ্যালু প্রপার্টি রিসিভ করবে। আপনি value এবং param একসাথে ব্যবহার করতে পারবেন না, কিন্তু দুটোই না ব্যবহার করা permissible। |
The <jsp:getProperty> Action
getProperty অ্যাকশন একটি দেওয়া প্রপার্টির মান রিট্রিভ করে, সেটিকে স্ট্রিং-এ কনভার্ট করে এবং আউটপুটে ইনসার্ট করে।
getProperty অ্যাকশনের শুধু দুটি অ্যাট্রিবিউট আছে, য strenght দুটিই রিকোয়ার্ড। সিনট্যাক্স:
<jsp:useBean id = "myName" ... /> ... <jsp:getProperty name = "myName" property = "someProperty" .../>
getProperty অ্যাকশনের সাথে যুক্ত প্রয়োজনীয় অ্যাট্রিবিউটগুলো:
| ক্রমিক নং | অ্যাট্রিবিউট ও বর্ণনা |
|---|---|
| 1 | name বিনের নাম যার প্রপার্টি রিট্রিভ করা হবে। বিনটি পূর্বে ডিফাইন করা থাকতে হবে। |
| 2 | property প্রপার্টি অ্যাট্রিবিউট হলো বিন প্রপার্টির নাম যা রিট্রিভ করা হবে। |
উদাহরণ
একটি টেস্ট বিন ডিফাইন করা যাক:
/* File: TestBean.java */
package action;
public class TestBean {
private String message = "No message specified";
public String getMessage() { return(message); }
public void setMessage(String message) { this.message = message; }
}
কোড কম্পাইল করে TestBean.class ফাইল তৈরি করুন এবং নিশ্চিত করুন এটি C:\apache-tomcat-7.0.2\webapps\WEB-INF\classes\action ফোল্ডারে কপি করা হয়েছে এবং CLASSPATH সেট করা আছে।
এখন main.jsp ফাইলে নিচের কোড ব্যবহার করুন। এটি বিন লোড করে এবং একটি সিম্পল স্ট্রিং প্যারামিটার সেট/গেট করে:
<html> <head> <title>Using JavaBeans in JSP</title> </head> <body> <center> <h2>Using JavaBeans in JSP</h2> <jsp:useBean id = "test" class = "action.TestBean" /> <jsp:setProperty name = "test" property = "message" value = "Hello JSP..." /> <p>Got message....</p> <jsp:getProperty name = "test" property = "message" /> </center> </body> </html>
main.jsp অ্যাক্সেস করলে ফলাফল:
Using JavaBeans in JSP Got message.... Hello JSP...