JSP Expression Language

Introduction to JSP Expression Language

JSP expression language एक साधारण सी scripting language है। ये JSP tag language से अलग होती है। इसे JSP version 2.0 में एक नए और powerful feature के रूप में add किया गया है। Expression language के द्वारा आप java bean classes और दूसरे implicit objects (page, request, session, application) से information display करवा सकते है।

JSP expression language के second version में इसका नाम Unified Expression Language रखा गया है। JSP expression language में बहुत से built in implicit objects, operators और reserved words available है। Expression language के implicit objects JSP के implicit objects से अलग होते है।

Uses of JSP Expression Language

Expression language java code को reduce करने के साथ ही development को भी simplify करती है। JSP expression language को आप 2 प्रकार से यूज़ कर सकते है।

  1. As value of attributes - Expression language के expressions को आप किसी attribute की value के रूप में pass कर सकते है। ये एक नया feature है जिससे की java objects को value के रूप में pass किया जा सकता है। उदाहरण के लिए यदि आप setProperty tag द्वारा किसी bean class की property set कर रहे है तो value के रूप में EL expression को pass कर सकते है। ऐसा किसी भी normal JSP tag या implicit object से किया जाना संभव नहीं है। इस उदाहरण निचे दिया जा रहा है।
<jsp:setProperty name="myBean" property="age" value="${2+40}" />
  1. In between HTML tags - JSP expression language के expressions को आप HTML tags के बीच भी यूज़ कर सकते है। इसका उदाहरण निचे दिया जा रहा है।
<h1>Number of Wonder ${6+1}</h1>      
  1. Can easily work with arrays - Expression language से आप java arrays के साथ भी आसानी से काम कर सकते है। Array elements को access करने के लिए आप [] brackets का इस्तेमाल करते है।

Types of EL Expressions

JSP expression language में आप 3 तरह के expressions create कर सकते है।

  1. Object Expressions - ये वो expressions होते है जिनमें आप expression language के built in objects के द्वारा java bean class और दूसरे objects से value display करवाते है।
  2. Arithmetic Expressions - ये वो expression होते है जिनमें आप arithmetic operators (+,-,*,/) यूज़ करते है।
  3. Logical Expressions - ये वो expression होते है जिनमें आप logical operators (>,<,!,=) को यूज़ करते है। ऐसे expressions का output true या false ही होता है।

Syntax of JSP Expression Language

Expression language में expressions define करने का general syntax निचे दिया जा रहा है।

${expression}

ऊपर दिए गए syntax में expression का मतलब ऊपर define किये गए expressions में से कोई भी expression होता है। उदाहरण के लिए निचे दिए गए statement को देखिये।

${5>2}

ऊपर दिया गया statement evaluate होने पर true display करता है।

Implicit Objects of JSP Expression Language

जैसा की आपको पहले ऊपर बताया गया, JSP expression language के implicit objects JSP language के implicit objects से अलग होते है। Expression language में 11 तरह के implicit objects होते है।

  1. requestScope - Expression language के इस object से आप ऐसे किसी भी attribute की value display करवा सकते है जो की request scope में या JSP implicit object request द्वारा set किया गया है।
  2. sessionScope - इस object से आप ऐसे किसी भी attribute की value display करवा सकते है जो session scope में या JSP implicit object session द्वारा set किया गया है।
  3. applicationScope - इस object के द्वारा आप ऐसे किसी भी attribute की value display करवा सकते है जो application scope में या JSP implicit object application द्वारा set किया गया है।
  4. pageScope - इस object के से आप ऐसे किसी भी attribute की value display करवा सकते है जो page scope में या JSP implicit object page द्वारा set किया गया है।
  5. param - इस object द्वारा आप किसी request parameter name को display करवा सकते है। उदाहरण के लिए आप form के किसी field की value इस object द्वारा display करवा सकते है।
  6. paramValues - ये object param की तरह ही काम करता है लेकिन param में आप single value display करवाते है और इस object के द्वारा आप values का एक string array display करवा सकते है।
  7. header - इस object द्वारा आप single header names display करवा सकते है।
  8. headerValues - इस expression language object द्वारा आप header names का एक पूरा string array display करवा सकते है।
  9. initParam - इस object द्वारा आप context initialization parameter attributes को display करवा सकते है।
  10. cookie - इस object के द्वारा आप cookie names और values को display करवा सकते है।
  11. pageContext - इस object से आप pageContext object के द्वारा set की गयी values को display करवा सकते है।

इनमें से कुछ implicit objects के बारे में निचे example द्वारा समझाया जा रहा है।

param

इस object को form values को access करने के लिए यूज़ किया जाता है। उदाहरण के लिए निचे दिए गए form को देखिये।

<form action="process.jsp">
<input type="text" name="UserName">
<input type="submit" value="Submit">
</form>

ऊपर दिए गए form से JSP के द्वारा value access or display करने के लिए normally आप request object और getAttribute method को इस प्रकार यूज़ करेंगे।

String name = request.getParameter("UserName");
out.println("Name is"+name);

ये काम आप expression language के requestScope object द्वारा इस प्रकार कर सकते है।

$(param.UserName)

ऊपर दिया गया statement directly form में input किये गए नाम को display करेगा। इस statement को आप आसानी से किसी attribute की value के रूप में भी यूज़ कर सकते है, लेकिन ऊपर दिए गए statements के साथ ऐसा करना संभव नहीं है।

sessionScope

इस object को session attributes की value display करवाने के लिए यूज़ किया जाता है। उदाहरण के लिए निचे दिए गए example को देखिये। One.jsp:

<html>
<head>
<title>sessionScopeDemo</title>
</head>

<body>

<h1> JSP Expression Language Example</h1>

<%
session.setAttribute("UserName","VIPIN");
%>

<a href="Two.jsp"> Go to Second Page </a>

</body>
</html>

Two.jsp:

<html>
<head>
<title>Second Page</title>
</head>

<body>

<h1>Hello $sessionScope(UserName); </h1>

</body>
</html>

ऊपर दिए गए उदाहरण में One.jsp में set किये गए UserName session attributes को Two.jsp file में JSP expression language के sessionScope implicit object द्वारा display करवाया गया है।

applicationScope

इस expression language object से आप application scope में set किये गए attributes की values को display करवा सकते है। इसे निचे उदाहरण के माध्यम से समझाया जा रहा है।

First.jsp:

<html>
<head>
<title> applicationScope Demo</title>
</head>

<body>

<%

applicaiton.setAttribute("ProjectName","JSP");

%>

<a href="Second.jsp"> Go to second page </a>

</body>
</html>

Second.jsp:

<html>
<head>
<title>applicationScope Demo </title>
</head>

<body>

Project name is : ${applicationScope.ProjectName}

</body>
</html>

ऊपर दिए गए उदाहरण में application scope में set किये गए attribute को applicationScope object द्वारा display करवाया गया है।