في JSP هل من الضروري إعادة تشغيل مكتبات العلامات في الملفات المضمنة؟

StackOverflow https://stackoverflow.com/questions/1683109

  •  18-09-2019
  •  | 
  •  

سؤال

أنا لا أعرف حقا كيف يعمل هذا في JSP

ولكن في

Template Main.jsp هناك هذا:

<%@ taglib uri="/WEB-INF/tld/c.tld" prefix="c" %>
<jsp:include page="/jsp/common_head.jsp"/>

ثم في common_head.jsp لدينا هذا مرة أخرى:

<%@ taglib uri="/WEB-INF/tld/c.tld" prefix="c" %>

هل هذا ضروري؟

أو بعبارة أخرى

هل تم نشر تصريحات Taglib لتشمل الملفات؟

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

المحلول

نعم، هذا ضروري. قبل تنفيذها لأول مرة، سيتم تحويل كل ملف JSP بشكل فردي / ترجمة / ترجمة إلى مستقل Servlet صف دراسي. سيتم ترجمة جميع العلامات إلى كود / طرق جافا "حقيقية". إذا كنت لا تعلن تاجليب، فلن يعرف مترجم JSP ما هي رمز جافا / الأساليب التي تحتاجها لتوليد / استدعاء العلامات المعينة.

في حالة مثل Tomcat، نلقي نظرة على /work مجلد لجميع تلك jsp المترجمة. عرض مصدرهم وسوف يكون واضحا.

نصائح أخرى

ال

<jsp:include page="/jsp/common_head.jsp"/>

... TAG هي ديناميكية تشمل معنى أنها تستدعي ديناميكيا صفحة common_head.jsp، والتي يتم تجميعها بشكل مستقل عن الصفحة بما في ذلك. وبالتالي يجب أن تكون هناك حاجة لتوجيه Taglib.

إذا، من ناحية أخرى، كنت تفعل ثابتة تشمل استخدام التوجيه

<%@ include file="/jsp/common_head.jsp" %>

... الملف سيكون نسخة لصقها وتجميعها مع الصفحة التي يتم تضمينها منها. ثم يجب عدم حاجة توجيه Taglib.

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

لاحظ أن الملفات الثابتة متضمنة قانونيا، حتى مع JSP: تضمين العلامة

تشمل التوجيه: http://java.sun.com/products/jsp/syntax/1.2/syntaxref129.html#997991.

تشمل JSP: http://java.sun.com/products/jsp/syntax/1.2/syntaxref1214.html

بما في ذلك مورد ديناميكي، فإن هذا المورد هو "مستقل" لذلك يجب أن يتضمن أي مكتبة علامة تستخدمها. سؤال آخر هو إذا كنت تستخدم هذه العلامات ...

نعم، مطلوب لجماعة JSP. يمكنك أيضا استخدام Taglib بدلا من c.tld.

<%@ taglib uri="http://java.sun.com/jstl/core" prefix="c"%>

آمل أن يساعد هذا

في أنظمة القالب الأخرى، عادة ما تنقل التعاريف. لا أرى لماذا يجب عليك استخدامه مرة أخرى

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