سؤال

ما هو المعادل للصفحات الرئيسية في عالم تطوير ويب Java؟لقد سمعت عن البلاط والنسيج والسرعة ولكن لا أعرف شيئًا عنها.هل هي سهلة الاستخدام مثل الصفحات الرئيسية؟

أريد شيئًا سهلاً مثل إعداد قالب واحد والصفحات اللاحقة المستمدة من القالب وتجاوز مناطق المحتوى، على غرار الصفحات الرئيسية.

أي أمثلة ستكون رائعة!!

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

المحلول

أولاً، سيكون ما يعادل ASP.Net في Java عبارة عن إطار ويب، مثل تلك التي ذكرتها (Tiles وTapestry وVelocity).

تمنح الصفحات الرئيسية القدرة على تحديد الصفحات من حيث المحتوى الموجود في قالب رئيسي.

تعد الصفحات الرئيسية إحدى ميزات ASP.Net (إطار عمل الويب .Net)، لذا فأنت تبحث عن ميزة مشابهة للصفحات الرئيسية في إطار عمل الويب Java.

http://tiles.Apache.org/framework/tutorial/basic/pages.html يعطي بعض الأمثلة الأساسية باستخدام Tiles وJSP لتنفيذ شيء مشابه مع Struts، وهو إطار عمل ويب Java.في هذه الحالة، تكون وظيفة الصفحات الرئيسية بمثابة مكون إضافي أعلى Struts.

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

يعتبر Tapestry عبارة عن حزمة ويب كاملة الميزات أكثر من Tile، وربما يكون مفيدًا لأغراضك.تتضمن وظيفة القوالب الخاصة به إنشاء مكون ووضع كل العلامات الشائعة فيه.مثال على ذلك هو في http://www.infoq.com/articles/tapestry5-intro.

تختلف تفاصيل هذا بناءً على إطار عمل ويب Java الذي تختاره.

نصائح أخرى

يجب عليك أيضا التحقق من الوجوه;هناك مقالة تمهيدية جيدة على DeveloperWorks.

الوجوه <ui:insert/> العلامة قابلة للمقارنة بـ ASP.NET <asp:ContentPlaceHolder/> العلامة المستخدمة في الصفحات الرئيسية؛فهو يتيح لك توفير المحتوى الافتراضي لتلك المنطقة من الصفحة، ولكن يمكن تجاوز ذلك.

لملء قالب Facelets في صفحة أخرى، عليك أن تبدأ بـ <ui:composition/> العنصر الذي يشير إلى ملف القالب.وهذا يعادل تقريبًا الإعلان عن سمة MasterPageFile في صفحة ASP.NET.

داخل <ui:composition/> العنصر الذي تستخدمه <ui:define/> عناصر لتجاوز الإعدادات الافتراضية للقالب، على غرار الطريقة التي <asp:Content/> يتم استخدام العلامة.يمكن أن تحتوي هذه العناصر على أي نوع من المحتوى - بدءًا من السلاسل البسيطة وحتى عناصر JSF.

حتى نجمع كل ذلك معًا..

في master.xhtml:

<!-- HTML header content here -->
<ui:insert name="AreaOne">Default content for AreaOne</ui:insert>
<ui:insert name="AreaTwo">Default content for AreaTwo</ui:insert>
<!-- HTML footer content here -->

في page.xhtml:

<ui:composition template="/WEB-INF/templates/master.xhtml">
  <ui:define name="AreaOne">Here is some new content</ui:define>
  <ui:define name="AreaTwo">
    <p>Some new content here too</p>
  </ui:define>
</ui:composition>

وسيتم تقديم هذا على النحو التالي:

<!-- HTML header content here -->
Here is some new content
<p>Some new content here too</p>
<!-- HTML footer content here -->

يمكنك أيضًا الحصول على بعض المزايا الأخرى باستخدام Facelets، مثل القدرة على إعادة استخدام مكونات الصفحة ببيانات مختلفة.

(تم التعديل لتوفير المزيد من المعلومات.)

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

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