لغة التعبير في JSP

⚡ ملخص ذكي

تُسهّل لغة التعبير في JSP الوصول إلى البيانات المخزنة في Javaتدعم هذه الميزة، التي تم تقديمها في JSP 2.0، المعاملات الحسابية والمنطقية والعلائقية، بالإضافة إلى عبارات اتخاذ القرار والحلقات المكتوبة داخل علامات EL.

  • 🧮 تعريف EL: يُسهّل الوصول إلى Javaتمت إضافة الكائنات الضمنية والبيانات الضمنية في JSP 2.0.
  • 🔣 بناء الجملة: اكتب التعبيرات داخل ${ } لتقييمها في وقت التشغيل وإخراج النتيجة.
  • 🔀 اتخاذ قرار: تتحكم عبارات if-else و switch في تدفق الصفحة.
  • 🔁 الحلقات: تتكرر عبارات for و while على الشروط.
  • ➕ Operaتورس: العوامل الحسابية والعلائقية والمنطقية (eq، lt، و، أو، فارغ).

لغة التعبير في JSP

ما هي لغة التعبير (EL)؟

لغة التعبير (EL) هي آلية تعمل على تبسيط إمكانية الوصول إلى البيانات المخزنة فيها Java مكون الفاصولياء وكائنات أخرى مثل الطلب والجلسة والتطبيق وما إلى ذلك.

يوجد العديد من المشغلات في JSP والتي يتم استخدامها في EL مثل المشغلات الحسابية والمنطقية لإجراء تعبير. تم تقديمها في JSP 2.0

بناء جملة JSP للغة التعبير (EL)

بناء جملة EL : ${expression}

  • في JSP، يتم تقييم أي شيء موجود في الأقواس في وقت التشغيل وإرساله إلى تدفق الإخراج.
  • التعبير هو تعبير EL صالح ويمكن مزجه بنص ثابت ويمكن دمجه مع تعبير آخر لتكوين تعبير أكبر.

للحصول على فكرة أفضل عن كيفية عمل التعبير في JSP، سنرى المثال أدناه. في هذا المثال، سنرى كيف يتم استخدام EL كمشغل لجمع رقمين (1+2) والحصول على الناتج على التوالي.

<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
	pageEncoding="ISO-8859-1"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Guru JSP1</title>
</head>
<body>
<a>Expression is:</a>
${1+2};
</body>
</html>

شرح Code:

  • Code خط 11: تم إعداد لغة التعبير (EL) بحيث نقوم بإضافة رقمين 1+2، وبالتالي ستعطي الناتج 3.

عند تنفيذ الكود أعلاه، سيكون لديك الإخراج التالي.

الناتج:

لغة التعبير JSP

  • التعبير هو: 3 (حيث سيتم إضافة الأرقام 1+2 وستكون بمثابة مخرجات)

بيانات التحكم في التدفق:

يوفر JSP قوة Java ليتم تضمينها في التطبيق. يمكننا استخدام جميع واجهات برمجة التطبيقات وكتل البناء Java in برمجة جي اس بي بما في ذلك بيانات تدفق التحكم والتي تتضمن اتخاذ القرار وبيانات الحلقة.

هناك نوعان من بيانات التحكم في التدفق الموضحة أدناه؛

  1. بيانات صنع القرار
  2. بيانات التكرار

بيانات صنع القرار:

يعتمد بيان اتخاذ القرار في JSP على ما إذا كانت مجموعة الشروط صحيحة أم خاطئة. البيان سوف يتصرف وفقا لذلك.

هناك نوعان من بيانات اتخاذ القرار الموضحة أدناه:

  1. إذا كان غير ذلك
  2. تحول

JSP إذا كان آخر

تعد عبارة "If else" أساسية لجميع عبارات التحكم في التدفق، وهي تخبر البرنامج بتنفيذ قسم معين من التعليمات البرمجية فقط إذا تم تقييم الاختبار المعين على أنه صحيح.

يستخدم هذا الشرط لاختبار أكثر من شرط سواء كانت صحيحة أو خاطئة.

  • إذا كان الشرط الأول صحيحا، فسيتم تنفيذ "if block" و
  • إذا كانت خاطئة فسيتم تنفيذ "كتلة أخرى".

بناء جملة عبارة if – else:

If(test condition)
{
	 //Block of statements
}
else
{
    //Block of statements
}

في هذا المثال، سوف نختبر شرط "if else" عن طريق أخذ متغير والتحقق من القيمة إذا كان المتغير يتطابق مع ما تم تهيئته:

<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
    pageEncoding="ISO-8859-1"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Guru JSP2</title>
</head>
<body>
<%! int month=5; %>
<% if(month==2){ %>
<a>Its February</a>
<% }else{ %>
<a>Any month other than February</a>
<%} %>
</body>
</html>

شرح الكود:

  • Code خط 10: تتم تهيئة المتغير المسمى الشهر إلى 5 في علامات التعبير
  • Code خط 11: في علامات EL يوجد "if condition" يشير إلى أنه إذا كان الشهر يساوي 2 (يتم اختبار الشرط هنا على أنه صحيح أو خطأ)
  • Code خط 12: إذا كان الشرط صحيحًا وهو أن الشهر المتغير هو 2، فسيتم الطباعة لتدفق الإخراج
  • Code السطر 13-15: إذا فشل الشرط أعلاه، فسوف ينتقل إلى جزء آخر لجميع الحالات الأخرى حيث ستتم طباعة العبارة إلى دفق الإخراج ويتم إغلاق الشرط

عند تنفيذ الكود أعلاه، سيكون لديك الإخراج التالي.

الإخراج:

JSP إذا كان آخر

  • نظرًا لأن الشهر الذي لدينا هو 5 وهو لا يساوي الرقم 2 (فبراير). وبالتالي، نحصل على الناتج "أي شهر بخلاف فبراير" (يُذكر الشهر بالرقم 5 وبالتالي يتم تنفيذ else)

تبديل جي إس بي

يُطلق على نص بيان التبديل اسم "كتلة التبديل".

  • يتم استخدام حالة التبديل للتحقق من عدد مسارات التنفيذ المحتملة.
  • يمكن استخدام المحول مع كافة أنواع البيانات
  • تحتوي عبارات التبديل على أكثر من حالة وحالة افتراضية واحدة
  • يقوم بتقييم التعبير ثم ينفذ جميع العبارات التي تتبع الحالة المطابقة

بناء الجملة لبيان التبديل:

switch (operator)
{
   Case 1:
       Block of statements
break;
   Case 2:
      Block of statements
break;


case n:
    Block of statements
break;
default:
  Block of statements
break;
}
  • تبدأ كتلة التبديل بمعلمة واحدة، وهي المشغل الذي يجب تمريره و
  • ثم هناك حالات مختلفة توفر الشرط وأيها يتطابق مع المشغل يتم تنفيذ تلك الحالة.

في المثال أدناه، قمنا بتعريف متغير "أسبوع"، ويتم مطابقته مع الحالة التي تكون صحيحة. في هذه الحالة، قيمة "أسبوع" هي 2، وبالتالي 2nd تمت مطابقة الحالة، والإخراج هو يوم الثلاثاء:

<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
    pageEncoding="ISO-8859-1"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Guru JSP3</title>
</head>
<body>
<%! int week=2; %>
<% switch(week){
case 0:
    out.println("Sunday");
    break;
case 1:
    out.println("Monday");
    break;
case 2:
    out.println("Tuesday");
    break;
case 3:
    out.println("wednesday");
    break;
case 4:
    out.println("Thursday");
    break;
case 5:
    out.println("Friday");
    break;
    default:
        out.println("Saturday");
    }
%>
</body>
</html>

شرح Code:

  • Code خط 10: تتم تهيئة الأسبوع المسمى المتغير إلى 2 في علامات التعبير
  • Code خط 11: في علامات EL، تبدأ حالة التبديل حيث يتم تمرير الأسبوع كمعلمة
  • Code السطر 12 – 29: تم ذكر جميع الحالات بدءاً من الحالة 0 إلى الحالة 5 حيث يتم مطابقة قيمة معلمة الأسبوع مع الحالات، وبناءً على ذلك تتم طباعة الإخراج. في هذه الحالة، القيمة هي 2 وبالتالي سيتم تنفيذ الحالة 2 في هذه الحالة. هنا "out" هي فئة JSP التي تكتب دفق الإخراج للاستجابة المولدة و"println" هي إحدى طرق تلك الفئة.
  • Code السطر 30-32: إذا فشلت جميع الحالات المذكورة أعلاه، فسيتم الانتقال إلى الجزء الافتراضي وسيتم تنفيذه، حيث ستتم طباعة البيان إلى دفق الإخراج ويتم إغلاق الشرط

عند تنفيذ الكود أعلاه، سيكون لديك الإخراج التالي.

الإخراج:

تبديل جي إس بي

  • الإخراج في هذه الحالة هو يوم الثلاثاء كما يتم استدعاء الحالة الثانية.

عبارات التكرار:

JSP للحلقة

يتم استخدامه لتكرار العناصر لحالة معينة، وله ثلاث معلمات.

  • تتم تهيئة العداد المتغير
  • الشرط حتى يتم تنفيذ الحلقة
  • يجب زيادة العداد

لبناء جملة الحلقة:

For(inti=0;i<n;i++)
{
           //block of statements
}

في هذا المثال، لدينا حلقة for التي تتكرر حتى يصبح العداد أقل من الرقم المحدد:

<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
    pageEncoding="ISO-8859-1"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Guru JSP4</title>
</head>
<body>
<%! int num=5; %>
<% out.println("Numbers are:");
for(int i=0;i<num;i++){
    out.println(i);
}%>
</body>
</html>

شرح للكود:

  1. Code خط 10: تتم تهيئة المتغير المسمى "num" إلى 5 في علامات التعبير
  2. Code السطر 11-14: في علامات EL، "out" هي فئة JSP و"println" هي طريقة الطباعة في تدفق الإخراج وبدء حلقة for التي تحتوي على ثلاث معلمات:
    • المتغير i تمت تهيئته إلى 0،
    • يتم إعطاء الشرط حيث تكون i أقل من المتغير المحلي num،
    • ويتم تزايدي في كل مرة تتكرر فيها الحلقة.

في نص "forloop"، هناك فئة من JSP والتي تطبع في دفق الإخراج باستخدام طريقة println حيث نقوم بطباعة المتغير i.

عند تنفيذ الكود أعلاه، سيكون لديك الإخراج التالي.

الإخراج:

JSP للحلقة

  • الناتج Numbers هي 0 1 2 3 4. في هذا المثال، نعطي الشرط أنه حتى يصبح العداد أقل من يساوي المتغير، يجب تنفيذ "حلقة for". الرقم هو 5 لذا ستبدأ الحلقة من 0 وتستمر حتى 4 (5 مرات). ومن هنا الإخراج.

JSP أثناء الحلقة

يتم استخدامه لتكرار عناصر حيث أنه يحتوي على معلمة واحدة من الشرط.

بناء الجملة:

While(i<n)
{
      //Block of statements
}

في هذا المثال، لدينا حلقة while والتي ستتكرر حتى يصبح اليوم أكبر من العداد:

<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
    pageEncoding="ISO-8859-1"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Guru JSP5</title>
</head>
<body>
<%! int day=2; int i=1; %>
<% while(day>=i){
    if(day==i){
        out.println("Its Monday");
        break;}
    i++;}
%>

</body>
</html>

شرح الكود:

  • Code خط 10: تتم تهيئة المتغير المسمى i إلى 1 واليوم هو 2 في علامات التعبير
  • Code السطر 11-17: في وسوم لغة التعبير (EL)، توجد حلقة "while" التي ستستمر في التكرار حتى يتحقق الشرط، فإذا كان اليوم أكبر من أو يساوي قيمة المتغير i، ستكون قيمة المتغير صحيحة (day>=i). يوجد داخل هذه الحلقة شرط "if" (day is equal i)، وإذا كان هذا الشرط صحيحًا، فسيتم طباعة مخرجات البرنامج، وسيتم إنهاء حلقة "while". وإلا، فسيتم زيادة قيمة المتغير i، وتستمر الحلقة في التكرار.

عندما ننفذ الكود، سيكون لدينا الناتج التالي

الإخراج هو:

JSP أثناء الحلقة

  • سيكون إخراج هذا الرمز هو "its Monday".

JSP Operaالاختصاصات

JSP Operaيدعم tors معظم العمليات الحسابية والمنطقية التي يدعمها جافا علامات لغة التعبير (EL). يتم ذكر المشغلات المستخدمة بشكل متكرر أدناه:

فيما يلي المشغلين:

. الوصول إلى خاصية الفول أو إدخال الخريطة
[] الوصول إلى مصفوفة أو عنصر قائمة
() قم بتجميع تعبير فرعي لتغيير ترتيب التقييم
+ إضافة
- فرعيةtracنفي أو تأكيد قيمة ما
* تضاعف
/ أو شعبة تقسيم
% أو تعديل مودولو (الباقي)
== أو مكافئ اختبار المساواة
!= أو ني اختبار عدم المساواة
< أو لتر اختبار لأقل من
> أو جي تي اختبار لأكبر من
<= أو لو اختبار أقل من أو يساوي
>= أو جنرال الكتريك اختبار أكبر من أو يساوي
&& او و اختبار المنطقية AND
|| او او اختبار لOR المنطقية
! أم لا تكملة منطقية أحادية
فارغ اختبار القيم المتغيرة الفارغة

في هذا المثال،

  • نقوم بإعلان متغيرين num1 وnum2 ثم نأخذ متغير num3، حيث نستخدم عامل JSP + by لإضافة num1 وnum2 والحصول على num3.
  • ثم نتحقق من شرط ما إذا كان num3 لا يساوي 0 باستخدام عوامل JSP (!=, >) و
  • ثم خذ متغيرًا آخر num4 بضرب اثنين num1 وnum2 نحصل على num4.

ينبغي طباعة كل هذه الأرقام باعتبارها الناتج الخاص بنا:

<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
    pageEncoding="ISO-8859-1"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Guru JSP6</title>
</head>
<body>
<% int num1=10; int num2 = 50;
   int num3 = num1+num2;
   if(num3 != 0 || num3 > 0){
       int num4= num1*num2;
       out.println("Number 4 is " +num4);
       out.println("Number 3 is " +num3);
    }%>
</body>
</html>

شرح الكود:

  • Code خط 10: تتم تهيئة المتغير المسمى num1 إلى 10 وnum2 إلى 50 في علامات التعبير
  • Code خط 11: المتغير num3 هو مجموع num1 وnum2 حيث نستخدم عامل الجمع
  • Code السطر 12-16: في وسوم EL، استخدمنا شرط "أو" (OR)، وهو عامل منطقي وعامل حسابي، للتحقق مما إذا كان العدد num3 أكبر من 0 في شرط if. يُستخدم "أو" عندما يكون أي من الشرطين صحيحًا، وفي هذه الحالة، ينتقل البرنامج إلى شرط if حيث نضرب العددين num1 وnum2، ونحصل على الناتج num4، ثم نطبع سلسلة المخرجات.

عند تنفيذ الكود أعلاه، سيكون لديك الإخراج التالي.

الإخراج:

JSP Operaالاختصاصات

  • الناتج الأول هو الرقم 4 هو 500 (المتغير num4 وهو num1*num2)
  • الناتج الثاني هو الرقم 3 هو 60 (المتغير num3 وهو num1+num2)

الأسئلة الشائعة

لغة التعبير (EL) تبسط الوصول إلى البيانات المخزنة في Javaيدعم هذا النظام الكائنات الضمنية مثل الطلبات والجلسات والتطبيقات. ويتيح لك كتابة تعبيرات ومعاملات موجزة مباشرةً في صفحة JSP بدلاً من Java البرامج النصية.

تستخدم لغة التعبير (EL) الصيغة ${expression}. يتم تقييم ما بداخل الأقواس أثناء التشغيل وإرساله إلى دفق الإخراج. يمكن دمج التعبيرات مع النصوص الثابتة وتعبيرات أخرى.

تم تقديم لغة التعبير في JSP 2.0. وقد صُممت لتقليل الحاجة إلى Java توفر البرامج النصية طريقة بسيطة للوصول إلى بيانات التطبيق وعرضها.

يمكن للذكاء الاصطناعي التحويل Java تحويل النصوص البرمجية إلى تعبيرات EL أكثر وضوحًا، واقتراح المعامل المناسب، وإنشاء أمثلة للحلقات والشروط، والمساعدةping يكتب المطورون صفحات JSP أكثر قابلية للقراءة بشكل أسرع.

نعم. يمكن للذكاء الاصطناعي أن يشير إلى بناء جملة EL غير صالح، والأقواس غير المتطابقة، وخصائص bean المفقودة، ومشكلات النوع، ثم يقترح تصحيحات، مما يقلل من أخطاء وقت التشغيل في صفحات JSP.

تلخيص هذه التدوينة بـ: