Standard Actions – JavaBeans – JSP में कुल 6 Standard Actions को Specify किया गया था, जिन्हें दो Group में Categorize किया जा सकता है। इन सभी Actions का किसी भी स्थिति में Available होना जरूरी होता है फिर भले ही हम किसी भी JSP Engine या Web Server Environment को Use क्यों न कर रहे हों।
Standard Actions के पहले Set के अन्तर्गत जितने भी Actions हैं, वे सभी JavaBeans को Utilize करने से सम्बंधित हैं और इसके अन्तर्गत useBean, setProperty व getProperety नाम के Actions को JavaBean Actions के नाम से जाना जाता है। जबकि दूसरे Set के अन्तर्गत आने वाले Actions को Resource Actions कहा जाता है और ये Action Elements हमें हमारे JSP Page के अन्दर किसी Outside Resource को Use करने की सुविधा Provide करते हैं।
JavaBean Actions
JavaBean Actions, Resource Actions से अलग होते हैं, क्योंकि ये हमें हमारे JSP Page में Server Side JavaBean को Use करने की सुविधा Provide करते हैं, जहां useBean Action का प्रयोग करके हम किसी नए JavaBean को अपने JSP Page पर जरूरत होने पर Use करने के लिए Instantiate कर सकते हैं जबकि getProperety व setProperty Actions का प्रयोग JavaBeans में Define किए गए Properties को Get व Set करने के लिए किया जा सकता है।
JavaBean Actions, JSP Pages के Component Model में काफी महत्वपूर्ण Role Play करते हैं, जहां विभिन्न प्रकार के Business Logic को JavaBeans Components के रूप में Define कर लिया जाता है जबकि सभी Presentation Logic को JSP Page में Specify कर दिया जाता है।
परिणामस्वरूप हमारा Web Application एक Separate, Reusable व Scalable Component की तरह Develop किया जाना सम्भव हो जाता है और अलग-अलग Developers हमारे Web Application के अलग-अलग हिस्सों (Presentation Logic Layer, Business Logic Layer, Backend Database Layer) को समानान्तर रूप से Develop करने में सक्षम हो जाते हैं।
<jsp:useBean> Action Element
useBean Action किसी Object का Instance Create करता है। साथ ही इस Newly Create होने वाले Object को page, request, session या application नाम के किसी Implicit Object के scope Attribute में भी Specify किया जाता है जबकि हर Object को Uniquely Identify करने के लिए उसके साथ एक id Attribute भी Assign किया जाता है। हम id Attribute में जो नाम Specify करते हैं, उसी नाम का एक नया Scripting Variable भी Create हो जाता है, जो कि उस Newly Created Object को Reference करता है।
useBean Action काफी Versatile Action है। सबसे पहले ये Action id व scope Variables को Use करते हुए किसी Existing Object को Search करता है। यदि Specified id व scope Attribute वाला Object प्राप्त नहीं होता, तो ये Action उस Specified id व scope से Associated एक नया Object Create कर देता है।
हालांकि हम इस Action का प्रयोग करके किसी अन्य Location पर Defined किसी Object को एक Local Name Assign करने के लिए भी Use कर सकते हैं जिसके लिए हमें type Attribute को Use करना होता है।
किसी भी useBean Action को Use करते समय हमें class या type Attribute में से किसी एक को Specify करना जरूरी होता है, जहां class Attribute उस Code को Specify करता है, जिससे Object Create हुआ है जबकि type Attribute, Newly Create होने वाले Object के Type को Specify करता है, ताकि एक Existing Object को जरूरत होने पर Find किया जा सके।
useBean Action को Use करते समय class व beanName दोनों Attributes को एक साथ Specify नहीं करना चाहिए। beanName Attribute, Create होने वाले नए Object को एक JavaBean के माध्यम से Identify करता है। इसलिए यदि class व type दोनों Specified हों, तो class को Specified Type से Assignable होना जरूरी होता है।
यदि सरल तरीके से class, type व beanName Parameters को Use करने से सम्बंधित Rules के बारे में समझें, तो विभिन्न Rules को हम निम्नानुसार Specify कर सकते हैं-
- जब हम useBean Tag के साथ class व type दोनों को Specify करते हैं, तब कोई नया Object Create नहीं होता बल्कि JSP Engine Specified id वाले Object को Specified scope में Search करता है और Object के मिल जाने की स्थिति में उसे एक Local Name Assign कर देता है।
- useBean के साथ class को Specify करते समय कभी भी beanName को Specify नहीं करना चाहिए।
- जबकि useBean के साथ class व type को Specify किया जा सकता है।
- useBean के साथ class व type class दोनों को भी एक साथ Specify किया जा सकता है।
- लेकिन useBean के साथ class व beanName दोनों को एक साथ Specify नहीं किया जा सकता।
useBean Tag के साथ Body हो भी सकती है और नहीं भी। उदाहरण के लिए हम useBean Action को निम्नानुसार बिना Body के भी Specify कर सकते हैं-
<jsp:useBean id=”newBean” class=”com.bccfalna.MyBean” />
जब हम बिना Body का useBean Tag Specify करते हैं, तब इस प्रकार के Empty Element के अन्त में एक Forward Slash होता है, जैसाकि उपरोक्त Statement में Red Color के Forward Slash को देखा जा सकता है।
जबकि यदि हम useBean Action का प्रयोग करते हुए किसी Object की Property को Set करना चाहें, तो उपरोक्त Statement को कुछ निम्नानुसार भी Specify किया जा सकता है-
<jsp:useBean id=”newBean” class=”com.bccfalna.MyBean”>
<jsp:setProperty name=”newBean” property=”border” value=”0″>
</jsp:useBean>
इस तरह से हम useBean Action Element को उपरोक्तानुसार दो तरीकों से Specify कर सकते हैं। जब हम <jsp:useBean> Tag Use करते हैं, तब हम इस Element में निम्न Attributes को Use कर सकते हैं-
id Attribute
id Attribute किसी Object को Specify किए गए Implicit scope Object के अन्तर्गत Identify करता है। साथ ही ये Attribute एक नया Scripting Variable भी Create करता है, जिस का प्रयोग उस Object को Reference करने के लिए किया जाता है।
किसी भी अन्य Scripting Variable की तरह ही Create होने वाला ये Variable भी Case Sensitive होता है और इसे भी Java Naming Convention को Follow करना जरूरी होता है। किसी भी Object को Uniquely Identify किया जा सके, इसके लिए id Attribute Compulsory रूप से Required होता है।
scope Attribute
scope Attribute किसी Object के Implicit scope Object को Define करता है जिसके अन्तर्गत Object का Reference Available रहता है। इस Attribute में Specify किए जा सकने वाले कुल पांच मान page, session, request व application हैं, जबकि इस Attribute का Default मान page होता है।
class Attribute
class Attribute किसी Object के Implementation को Define करता है। class या beanName को Specify न होने की स्थिति में भी Object का Specified Scope में Available होना जरूरी होता है।
type Attribute
type Attribute Create होने वाले Scripting Variable के Type को Define करता है। इसकी वजह से ही Scripting Variable का Type किसी अन्य प्रकार का भी हो सकता है, हालांकि जिस Object को ये Scripting Variable Reference करता है, उसका Related होना जरूरी होता है। type का स्वयं का Class, Super Class या Specified Class का Interface होना भी जरूरी होता है। यदि इसे Specify न किया जाए तो Default रूप से type ही Class का Attribute होता है।
beanName Attribute
beanName Attribute में हमारे Bean का वह नाम होता है, जिसे java.beans.Beans Class के instantiate() Method द्वारा Specify किया गया होता है। इस नाम को उस समय Specify किया जा सकता है जब किसी Expression द्वारा Request Perform किया जा रहा होता है।