1. المنطق: فارغ
يتم استخدام العلامة logic:empty لتحديد ما إذا كانت فارغة أم لا. إذا كان فارغًا، فستتم معالجة المحتوى المضمن في نص العلامة. يتم استخدام هذه العلامة في الحالات التالية:
عندما يكون كائن Java فارغًا عندما يكون كائن السلسلة "" عندما يُرجع isEmpty() في كائن java.util.Collection صحيحًا عندما يُرجع isEmpty() في كائن java.util.Map صحيحًا يوضح مثال التعليمات البرمجية التالي المنطق: تحدد العلامة الفارغة ما إذا كان أشخاص المجموعة فارغين:
<logic:empty name="listForm" property = "persons">
<div>أشخاص المجموعة فارغون!</div>
</منطق:فارغ>
2. المنطق: ليس فارغًا
تطبيق هذه العلامة هو عكس العلامة المنطقية: الفارغة تمامًا.
3. المنطق: متساوي
هذه العلامة هي عامل مقارنة يساوي.
على سبيل المثال1. قارن سمة حالة المستخدم لمعرفة ما إذا كانت 1. إذا كانت 1، فسيتم إخراج "ممكّن"؛
على سبيل المثال2.إذا تم الحصول على القيمة في المثال أعلاه ديناميكيًا، على سبيل المثال، فيجب إخراجها من خلال الفول: الكتابة، نظرًا لأن الدعامات لا تدعم تداخل الملصقات، فيمكن استخدام EL لحل هذه المشكلة.
المنطق: متساوي
ما نريد تقديمه هنا ليس فقط العلامة logic:equal(=)، بل نوع من العلامات التي تكمل عمليات المقارنة، بما في ذلك:
المنطق: يساوي (=)
المنطق:غير متساوي(!=)
المنطق:أكبر يساوي(>=)
المنطق: أقل مساواة (<=)
المنطق: مبشرة (>)
المنطق: أقل من (<)
استخدام هذا النوع من العلامات مشابه، نحن نقدم فقط العلامة المنطقية:تساوي ونترك الباقي لك.
المنطق: يتم استخدام المساواة لتحديد ما إذا كانوا متساوين. إذا كانت متساوية، ستتم معالجة المحتوى المضمن في نص العلامة. يتم استخدام هذه العلامة في الحالات التالية:
يقارن ما إذا كانت قيمة ملف تعريف الارتباط المحدد بواسطة سمة ملف تعريف الارتباط لهذه العلامة تساوي قيمة سمة القيمة لهذه العلامة.
يقارن ما إذا كانت قيمة الرأس المحددة بواسطة سمة رأس العلامة تساوي قيمة سمة قيمة العلامة.
يقارن ما إذا كانت JSP Bean المحددة بواسطة سمة اسم العلامة تساوي سمة القيمة للعلامة (لا تظهر سمة الخاصية) أو يقارن ما إذا كانت قيمة سمة الخاصية لـ JSP Bean المحددة بواسطة سمة اسم العلامة هي يساوي سمة القيمة للعلامة القيم متساوية.
يقارن ما إذا كانت قيمة المعلمة المحددة بواسطة سمة المعلمة للعلامة (في الطلب) تساوي سمة القيمة للعلامة.
4. المنطق: غير متساوي
معنى هذه العلامة مخالف للمنطق: متساوي، واستخدامها مشابه، وهو محذوف.
5. المنطق: إلى الأمام
تُستخدم هذه العلامة لتنفيذ إرشادات الصفحة والعثور على التوجيه العام لملفات التكوين. إعادة التوجيه العامة في ملف struts-config.xml
على سبيل المثال <logic:forward name="redirect"/>
6. المنطق: أكبر
هل معامل المقارنة أكبر من أو يساوي.
على سبيل المثال، عندما تكون درجة الطالب أكبر من أو تساوي 60، يتم إخراج "نجاح":
<logic:greaterEqual name='student' property='scores' value='60'>
يمر
</logic:greaterEqual>
7. المنطق: أكبر من
هذا هو عامل التشغيل أكبر من المقارنة، واستخدامه هو نفس استخدام logic:greaterEqual;
8. المنطق: أقل مساواة
هذا عامل مقارنة أقل من أو يساوي، واستخدامه هو نفس استخدام logic:greaterEqual;
9. المنطق: أقل من
هذا عامل أقل من مقارنة، واستخدامه هو نفس استخدام logic:greaterEqual;
10. المنطق: مباراة
تقارن هذه العلامة الكائنات من أجل المساواة؛
يتم استخدام علامة logic:match للتعامل مع مشكلات مطابقة السلسلة الفرعية.
إذا كانت القيمة المحددة تطابق العلامة، فسيتم إنشاء محتويات نص العلامة الخاصة بها. يتم استخدام هذه العلامة في الحالات التالية:
للتحقق مما إذا كان ملف تعريف الارتباط الذي يحمل الاسم المحدد يطابق قيمة هذه العلامة.
للتحقق مما إذا كان الرأس الذي يحمل الاسم المحدد يطابق قيمة هذه العلامة.
يتحقق مما إذا كانت JSP Bean بالاسم المحدد تتطابق مع قيمة العلامة أو تتحقق مما إذا كانت قيمة سمة الخاصية في JSP Bean بالاسم المحدد تطابق قيمة العلامة.
للتحقق مما إذا كانت قيمة المعلمة للاسم المحدد في الطلب تتطابق مع قيمة العلامة.
يوضح التعليمة البرمجية التالية الاستخدام النموذجي للعلامة المنطق:مطابقة:
على سبيل المثال0.
12. المنطق: الرسالة الحالية
يتم استخدام هذه العلامة لتحديد ما إذا كان كائن ActionMessages/ActionErrors موجودًا أم لا؛
يتم استخدام العلامة logic:messagesPresent في الحالات التالية:
يوجد كائن ActionMessages في نطاق الطلب، وتتوافق سمة خاصية التسمية مع الخاصية الموجودة في ActionMessages.
يوجد كائن ActionErrors في نطاق الطلب، وتتوافق سمة خاصية التسمية مع الخاصية الموجودة في ActionErrors.
يوجد كائن سلسلة، قم بتحويله (إنشاءه) إلى ActionMessage ثم قم بإضافته إلى ActionMessages.
يوجد كائن String Array، قم بتحويل كل سلسلة في الصفيف إلى ActionMessage، ثم قم بإضافته إلى ActionMessages.
عندما تكون قيمة سمة الرسالة الخاصة بالعلامة صحيحة، سيتم استخدام Globals.MESSAGE_KEY كمفتاح للبحث عن الرسالة في نطاق الطلب. وفي حالات أخرى، سيتم استخدام قيمة الاسم كمفتاح للبحث عن الاسم لا يظهر، القيمة الافتراضية هي Globals.ERROR_KEY.
يوضح التعليمة البرمجية التالية الاستخدام النموذجي للعلامة logic:messagesPresent:
على سبيل المثال1.
14. المنطق : حاضر
يتم استخدام هذه العلامة لتحديد ما إذا كانت المعلمات التي تم تمريرها بواسطة كائن الطلب موجودة أم لا.
إذا ظهرت القيمة المحددة، فستقوم العلامة بإنشاء محتويات نص العلامة الخاص بها. يتم استخدام هذه العلامة في الحالات التالية:
التحقق من وجود ملف تعريف الارتباط بالاسم المحدد.
التحقق من ظهور رأس بالاسم المحدد.
التحقق من ظهور JSP Bean بالاسم المحدد أو التحقق من ظهور سمة الخاصية في JSP Bean بالاسم المحدد.
تحقق من ظهور المعلمة بالاسم المحدد في الطلب.
التحقق مما إذا كان المستخدم الذي تمت مصادقته حاليًا مرتبطًا بدور الأمان المحدد.
للتحقق مما إذا كان الموضوع الذي تمت مصادقته حاليًا له الاسم المحدد.
على سبيل المثال1.عند وجود كائن المستخدم وسمة اسمه في الطلب، يتم إخراج السلسلة المقابلة:
دعونا نرى الفرق بين هذين الإجراءين:
يتم تنفيذ عملية إعادة التوجيه داخل servlet، ولن يكون المتصفح على علم بهذا الإجراء على الإطلاق، ولن يتغير عنوان URL الأصلي. إذا تمت إعادة تحميل المتصفح، فسوف يقوم ببساطة بتكرار الطلب الأصلي.
تنقسم عملية إعادة التوجيه إلى خطوتين: الخطوة الأولى هي أن يخبر تطبيق الويب المتصفح بعنوان URL الثاني، ثم يرسل المتصفح طلبًا إلى عنوان URL الثاني.
تكون إعادة التوجيه أبطأ من إعادة التوجيه لأن المتصفح يجب أن يقدم طلبًا ثانيًا. لاحظ أيضًا أن الوحدات الموجودة في نطاق الطلب الأول (نطاق الطلب) غير مرئية للطلب الثاني.
بعد فهم الاختلافات الموضحة أعلاه، ستعرف متى تستخدم علامة logic:forward ومتى تستخدم علامة logic:redirect.
تكمل العلامة logic:forward() PageContext.forward أو HttpServletResponse.sendRedirect(). يتم تحديد الاختيار بواسطة وحدة التحكم. العلامة المنطقية: إعادة التوجيه تكمل HttpServletResponse.sendRedirect().
عند استخدام علامة logic:redirect، يمكننا إنشاء معلمات baseurl والاستعلام تمامًا مثل استخدام html:link. إذا كنت مهتمًا، يمكنك الرجوع إلى علامة html:link.