Latest web development tutorials

JSP لغة التعبير

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


وجملة بسيطة

عادة، عندما كنت في حاجة لتحديد قيمة العقار عند علامات JSP، ببساطة استخدام السلسلة إلى:

<jsp:setProperty name="box" property="perimeter" value="100"/>

JSP EL التعبير يسمح لك لتحديد قيمة العقار. والتعبير اللغوي البسيط هو على النحو التالي:

${expr}

حيث، EXPR يشير إلى التعبير. في المشغل عام JSP EL هو "." و "[]". هذه الشركتين تسمح لك الوصول إلى مجموعة واسعة من الخصائص JSP المشترك JavaBean جزءا لا يتجزأ من خلال الكائن.

على سبيل المثال، ما سبق <التخطيط الاستراتيجي المشترك: setProperty> العلامة يمكن إعادة كتابة باستخدام لغة التعبير على النحو التالي:

<jsp:setProperty name="box" property="perimeter" 
                 value="${2*box.width+2*box.height}"/>

عندما المترجم JSP لرؤية "$ {}" بعد تنسيق، فإنه ينشئ رمز إلى تقييم التعبير، ويولد بديل ليحل محل قيمة التعبير في الممتلكات.

يمكنك أيضا استخدام لغة التعبير في علامة التبويب نص القالب. على سبيل المثال، <التخطيط الاستراتيجي المشترك: النص> العلامة ببساطة إدراج في الناتج JSP النص الأساسي:

<jsp:text>
<h1>Hello JSP!</h1>
</jsp:text>

الآن، في: استخدام عبارة <النص التخطيط الاستراتيجي المشترك> العلامة في الجسم، مثل هذا:

<jsp:text>
Box Perimeter is: ${2*box.width + 2*box.height}
</jsp:text>

تعبيرات EL بين قوسين يمكن أن تستخدم لتنظيم التعبير الفرعي. على سبيل المثال $ {(1 + 2) * 3 يساوي 9}، ولكن $ {1 + (2 * 3)} = 7.

تريد تعطيل تقييم التعبيرات EL، فأنت بحاجة إلى استخدام التوجيه الصفحة isELIgnored السمة إلى true:

<%@ page isELIgnored ="true|false" %>

وبالتالي، يتم تجاهل تعبيرات EL. إذا تم رفض، سيتم احتساب الحاوية تعبيرات EL.


EL المشغل الأساسي

EL دعم التعبير التي توفرها معظم العمليات الحسابية والمنطقية مشغلي جافا:

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

وظيفة التخطيط الاستراتيجي المشترك EL

تسمح وظيفة التخطيط الاستراتيجي المشترك EL تتمكن من استخدامها في التعبيرات. يجب أن تحدد هذه الوظائف في مكتبة العلامة المخصصة. استخدم بناء الجملة وظيفة على النحو التالي:

${ns:func(param1, param2, ...)}

NS يشير إلى مساحة اسم (مساحة)، ظائفها هي اسم الدالة، يشير PARAM1 إلى الحجة الأولى، يشير PARAM2 إلى الحجة الثانية، وهلم جرا. على سبيل المثال، هناك FN وظيفة: طول المحددة في مكتبة JSTL يمكن أن يكون مثل هذا للحصول على طول سلسلة:

${fn:length("Get my length")}

لاستخدام أي من وظائف مكتبة العلامة، وسوف تحتاج هذه المكتبات مثبتة على الخادم، ومن ثم استخدام العلامة <taglib> تحتوي على مكتبات في ملف JSP.


JSP EL الأجسام الضمنية

يدعم مدرجة JSP EL الأجسام الضمنية في الجدول التالي:

الأشياء الخفية وصف
pageScope الصفحة نطاق
requestScope نطاق الطلب
sessionScope نطاق جلسة
applicationScope نطاق التطبيق
المعلمة طلب سلسلة المعلمة الكائن
paramValues المعلمة طلب كائن، وجمع سلسلة
رأس سلسلة رأس HTTP
headerValues رأس HTTP، جمع سلسلة
initParam المعلمات سياق التهيئة
كوكي قيمة الكعكة
pageContext الصفحة pageContext الحالية

يمكنك استخدام هذه الكائنات في تعبير، مثل استخدام نفس المتغير. وبجانب إعطاء بعض الأمثلة لفهم أفضل لهذا المفهوم.


الأشياء pageContext

كائن pageContext هو إشارة إلى كائن JSP pageContext. بواسطة كائن pageContext، يمكنك الوصول إلى الكائن الطلب. على سبيل المثال، للوصول إلى كائن طلب تمريرها في سلسلة الاستعلام، مثل هذا:

${pageContext.request.queryString}

كائنات نطاق

pageScope، requestScope، sessionScope، يتم استخدام applicationScope المتغير للوصول إلى البيانات المخزنة في كل مستويات الفحص متغير.

على سبيل المثال، إذا كنت بحاجة إلى الوصول بشكل واضح مربع applicationScope طبقة متغيرة، ويمكن الوصول إليها: applicationScope.box.


المعلمة وparamValues ​​الأجسام

الهدف من ذلك هو استخدام المعلمة وparamValues ​​للوصول إلى قيم المعلمات باستخدام أساليب وrequest.getParameterValues ​​طريقة request.getParameter.

على سبيل المثال، والوصول إلى معلمة أجل مسمى، يمكنك استخدام هذا التعبير: $ {param.order}، أو {$ المعلمة [ "النظام"]}.

توضح الأمثلة التالية كيفية الوصول إلى المعلمة طلب اسم المستخدم:

<%@ page import="java.io.*,java.util.*" %>
<%
    String title = "Accessing Request Param";
%>
<html>
<head>
<title><% out.print(title); %></title>
</head>
<body>
<center>
<h1><% out.print(title); %></h1>
</center>
<div align="center">
<p>${param["username"]}</p>
</div>
</body>
</html>

كائن المعلمة بإرجاع سلسلة واحدة، يتم إرجاع كائن paramValues ​​صفيف سلسلة.


الأجسام رأس وheaderValues

يستخدم رأس وجسم headerValues ​​للوصول إلى معلومات رأس باستخدام أساليب وطريقة request.getHeaders request.getHeader.

على سبيل المثال، للوصول إلى المعلومات، وتسمى رأس عامل المستخدم، يمكنك استخدام هذا التعبير: $ {header.user وكيل}، أو {$ رأس [ "عامل المستخدم"]}.

توضح الأمثلة التالية كيفية الوصول إلى رأس عامل المستخدم:

<%@ page import="java.io.*,java.util.*" %>
<%
    String title = "User Agent Example";
%>
<html>
<head>
<title><% out.print(title); %></title>
</head>
<body>
<center>
<h1><% out.print(title); %></h1>
</center>
<div align="center">
<p>${header["user-agent"]}</p>
</div>
</body>
</html>

النتائج على النحو التالي:

التخطيط الاستراتيجي المشترك التعبير عن اللغة

كائن رأس بإرجاع قيمة واحدة، في حين يعود headerValues ​​مجموعة من السلاسل.