سؤال

لدي العديد من العناصر (المكونات) المشتركة التي من شأنها أن تولد بعض HTML.يبدو أن خياراتي هي إنشاء taglib، أو مجرد وضع هذا المنطق في صفحة jsp بما في ذلك jsp.

ماهو الفرق؟الإيجابيات مقابل السلبيات؟

هل كانت مفيدة؟

المحلول

عند استخدام taglib الحاوية عادةً:

  • يكتب ويستدعي طريقة مساعدة من داخل _jspService
  • داخل الأسلوب المساعد، يتم إنشاء مثيل لفئة العلامة ويتم استدعاء الأساليب القياسية (setParent ()، doStartTag ()، doEndTag ()، إلخ ...)

يؤدي هذا إلى الاحتفاظ بجميع التعليمات البرمجية داخل نفس المورد (لا يتم تمرير الطلب إلى مكون آخر)، وبالتالي يسمح لك ببناء سلوك التكرار والوصول إلى المكونات الأخرى في الصفحة الحالية.

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

نصائح أخرى

تتيح لك Taglibs تحديد المعلمات (المكتوبة) التي يمكنك توثيقها.يمكن أيضًا أن تكون taglibs على علم بموقعها في شجرة الكائنات، لذا تتصرف بشكل مختلف في سياق مختلف؛أو قم باستدعاء قالب محدد مرارًا وتكرارًا لإنشاء مكررات أو بنيات بيان.

هل تعلم أن taglibs ليس من الضروري كتابته بلغة Java؟يوجد أيضًا مفهوم يسمى tagfiles والذي يسمح لك بكتابة taglib الخاص بك في JSP؛غالبًا ما تكون أكثر ملاءمة للمكونات المسطحة ...قريب جدًا من تضمينه.

تدعم العلامات (التي تتضمن آلية ملف العلامات سهلة الاستخدام الشبيهة بـ JSP) الاستدعاء باستخدام معلمات مسماة مكتوبة بقوة.

ميزة أخرى مفيدة بشكل لا يصدق والتي غالبًا ما يتم تجاهلها لعلامات JSP هي JspFragment نوع السمة.يسمح لك هذا بتمرير جزء من كود JSP، كمعلمة، إلى علامة ليتم استدعاؤها، ربما بشكل متكرر.

يتضمن عدم وجود ميزات المعلمات القوية هذه.

تسهل taglibs تحديد المعلمات والتعامل معها، ولكن هناك عبء كبير لتطويرها.تتضمن العناصر أبسط ولكنها أقل قوة.يعتمد الكثير على أسلوبك.

في تجربتي، يستخدم الأشخاص بشكل عام التضمين فقط لأنهم لا يريدون أن يأخذوا الوقت الكافي لتعلم كيفية إنشاء علامات التبويب.مما يؤدي إلى فوضى عادلة.طالما أن فريقك صغير وفريقك ليس معقدًا للغاية، فهذا ليس سيئًا للغاية.لكنها رائحة الكود.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top