JSP Standard Tag Library (JSTL)

From binaryoption
Jump to navigation Jump to search
Баннер1

center|500px|شعار مكتبة العلامات القياسية لـ JSP

مكتبة العلامات القياسية لـ JSP (JSTL)

مكتبة العلامات القياسية لـ JSP (JavaServer Pages Standard Tag Library - JSTL) هي مجموعة من علامات HTML المخصصة التي تبسّط تطوير تطبيقات الويب الديناميكية باستخدام تقنية JSP. تُعتبر JSTL جزءًا أساسيًا من تطوير تطبيقات Java Enterprise Edition، وتهدف إلى فصل منطق العرض (Presentation Logic) عن منطق الأعمال (Business Logic) في صفحات الويب. قبل JSTL، كان المطورون يعتمدون بشكل كبير على Scriptlet و EL مباشرة داخل صفحات JSP، مما أدى إلى صعوبة الصيانة وإعادة الاستخدام.

لماذا نستخدم JSTL؟

  • فصل الاهتمامات: JSTL تفصل منطق العرض عن منطق الأعمال، مما يجعل الكود أكثر تنظيمًا وسهولة في الصيانة.
  • إعادة الاستخدام: توفر JSTL مجموعة من العلامات القابلة لإعادة الاستخدام، مما يقلل من تكرار الكود.
  • سهولة القراءة: علامات JSTL أكثر وضوحًا وسهولة في الفهم من Scriptlet.
  • التوحيد: توفر JSTL مجموعة موحدة من العلامات، مما يسهل التعاون بين المطورين.
  • تحسين الأداء: في بعض الحالات، يمكن أن تؤدي JSTL إلى تحسين الأداء مقارنة بـ Scriptlet، خاصةً في الحلقات والشروط.

مكونات JSTL

تتكون JSTL من خمس مكتبات رئيسية:

مكونات مكتبة العلامات القياسية لـ JSP (JSTL)
**المكتبة** **الوصف** **أمثلة على العلامات** Core توفر العلامات الأساسية للتحكم في التدفق المنطقي، بما في ذلك الشروط والحلقات. <c:if>, <c:choose>, <c:forEach>, <c:set>, <c:out> Format توفر العلامات لتنسيق البيانات، مثل الأرقام والتواريخ والعملات. <fmt:formatNumber>, <fmt:formatDate>, <fmt:message> SQL توفر العلامات للتفاعل مع قواعد البيانات. (ملحوظة: هذه المكتبة تعتبر قديمة وغير مستحسنة الاستخدام في المشاريع الجديدة بسبب مخاوف أمنية. يفضل استخدام Java Database Connectivity أو Java Persistence API). <sql:query>, <sql:update>, <sql:select> XML توفر العلامات لمعالجة مستندات XML. <x:parse>, <x:transform>, <x:forEach> Functions توفر مجموعة من الوظائف المساعدة التي يمكن استخدامها داخل EL. <fn:length>, <fn:substring>, <fn:replace>

استخدام JSTL في تطبيق JSP

لاستخدام JSTL في تطبيق JSP، يجب أولاً تضمين مكتبات JSTL في بداية الصفحة. يتم ذلك باستخدام توجيهات الصفحة (Page Directives).

Admin (talk)jsp <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %> <%@ taglib uri="http://java.sun.com/jsp/jstl/fmt" prefix="fmt" %> <%@ taglib uri="http://java.sun.com/jsp/jstl/sql" prefix="sql" %> <%@ taglib uri="http://java.sun.com/jsp/jstl/xml" prefix="x" %> <%@ taglib uri="http://java.sun.com/jsp/jstl/functions" prefix="fn" %> Admin (talk)

في هذا المثال، قمنا بتضمين جميع مكتبات JSTL الخمس، وتعيين بادئة لكل منها (مثل `c` لـ Core، و `fmt` لـ Format). يمكنك الآن استخدام العلامات من هذه المكتبات في صفحة JSP الخاصة بك باستخدام البادئة المحددة.

مثال بسيط: عرض رسالة مشروطة

لنفترض أننا نريد عرض رسالة مختلفة بناءً على قيمة متغير. يمكننا استخدام علامة <c:if> من مكتبة Core لتحقيق ذلك:

Admin (talk)jsp <c:set var="username" value="JohnDoe" />

<c:if test="${username != null}">

مرحبًا، ${username}!

</c:if> <c:otherwise>

مرحبًا، زائر!

</c:otherwise> Admin (talk)

في هذا المثال، إذا كانت قيمة المتغير `username` ليست فارغة، فسيتم عرض الرسالة "مرحبًا، JohnDoe!". وإلا، فسيتم عرض الرسالة "مرحبًا، زائر!".

مثال: التكرار باستخدام <c:forEach>

لنفترض أن لدينا قائمة من الأسماء ونريد عرضها في قائمة غير مرتبة:

Admin (talk)jsp <c:set var="names">

 <c:forEach var="name" items="${['Alice', 'Bob', 'Charlie']}" varStatus="loop">
   ${name}<c:if test="${!loop.last}">,</c:if>
 </c:forEach>

</c:set>

    <c:forEach var="name" items="${fn:split(names, ',')}" varStatus="loop">
  • ${name}
  • </c:forEach>

Admin (talk)

هذا المثال يستخدم <c:forEach> للتكرار على قائمة الأسماء وعرض كل اسم كعنصر في قائمة غير مرتبة.

JSTL و Expression Language (EL)

تتعاون JSTL بشكل وثيق مع EL. يتم استخدام EL داخل علامات JSTL لتقييم التعبيرات والوصول إلى البيانات. على سبيل المثال، في المثال السابق، استخدمنا ${username} داخل علامة <c:if> لتقييم قيمة المتغير `username`.

بدائل JSTL

على الرغم من أن JSTL لا تزال مستخدمة على نطاق واسع، إلا أن هناك بدائل أخرى متاحة، مثل:

موارد إضافية

علاقة JSTL بمفاهيم أخرى

استراتيجيات تداول ذات صلة (لإكمال الحد الأدنى من الروابط)

ابدأ التداول الآن

سجل في IQ Option (الحد الأدنى للإيداع $10) افتح حساباً في Pocket Option (الحد الأدنى للإيداع $5)

انضم إلى مجتمعنا

اشترك في قناة Telegram الخاصة بنا @strategybin للحصول على: ✓ إشارات تداول يومية ✓ تحليلات استراتيجية حصرية ✓ تنبيهات باتجاهات السوق ✓ مواد تعليمية للمبتدئين

Баннер