2008-08-25 12 views
6

जावा वेब विकास दुनिया में समकक्ष मास्टर पेज क्या होंगे? मैंने टाइल्स, टेपेस्ट्री और वेग के बारे में सुना है लेकिन उनके बारे में कुछ भी नहीं पता। क्या वे मास्टर पेज के रूप में उपयोग करना आसान है?जावा में समतुल्य एएसपी.नेट मास्टर पेज

मुझे एक टेम्पलेट सेट अप करना आसान है और बाद के पेज टेम्पलेट से प्राप्त होते हैं और मास्टर पेजों के समान सामग्री क्षेत्रों को ओवरराइड करते हैं।

कोई भी उदाहरण महान होगा !!

उत्तर

4

सबसे पहले, जावा में एएसपी.Net के बराबर एक वेब ढांचा बनने जा रहा है, जैसे कि आप उल्लेख करते हैं (टाइल्स, टेपेस्ट्री और वेग)।

मास्टर पेज मास्टर टेम्पलेट में रखी गई सामग्री के संदर्भ में पृष्ठों को परिभाषित करने की क्षमता देते हैं।

मास्टर पेज एएसपी.Net (नेट वेब फ्रेमवर्क) की एक विशेषता है, इसलिए आप जावा वेब फ्रेमवर्क में मास्टर पेजों की तरह एक सुविधा की तलाश में हैं।

http://tiles.apache.org/framework/tutorial/basic/pages.html स्ट्रेट्स, जावा वेब फ्रेमवर्क के समान कुछ लागू करने के लिए टाइल्स और जेएसपी का उपयोग करके कुछ बुनियादी उदाहरण देता है। इस मामले में, मास्टर पेज कार्यक्षमता स्ट्रूट्स के शीर्ष पर एक प्लगइन है।

वेग एक सामान्य टेम्पलेटिंग इंजन है, जो वेब पृष्ठों के लिए विशिष्ट नहीं है और आपको आवश्यकतानुसार निश्चित रूप से अधिक जटिल है। (मैंने इसे कोड पीढ़ी के लिए इस्तेमाल किया है।)

टेपेस्ट्री टाइल की तुलना में एक पूर्ण विशेषीकृत वेब स्टैक से अधिक है, और शायद आपके उद्देश्यों के लिए अच्छा है। इसकी templating कार्यक्षमता में एक घटक बनाने और उसमें सभी सामान्य मार्कअप डालने शामिल है। एक उदाहरण http://www.infoq.com/articles/tapestry5-intro पर है।

इस बारे में विशिष्टताएं आपके द्वारा चुने गए जावा वेब ढांचे के आधार पर भिन्न होती हैं।

12

आपको Facelets भी देखना चाहिए; डेवलपर वर्क्स पर good introductory article है।

फेसलेट <ui:insert/> टैग मास्टर पेजों में उपयोग किए गए ASP.NET <asp:ContentPlaceHolder/> टैग से तुलनीय है; यह आपको पृष्ठ के उस क्षेत्र के लिए डिफ़ॉल्ट सामग्री प्रदान करने देता है, लेकिन इसे ओवरराइड किया जा सकता है।

किसी अन्य पृष्ठ में फेसलेट टेम्पलेट भरने के लिए, आप <ui:composition/> तत्व से प्रारंभ करते हैं जो टेम्पलेट फ़ाइल को इंगित करता है। यह लगभग ASP.NET पृष्ठ में MasterPageFile विशेषता को घोषित करने के बराबर है।

<ui:composition/> तत्व के अंदर, आप तत्वों का उपयोग टेम्पलेट डिफ़ॉल्ट को ओवरराइड करने के लिए करते हैं, <asp:Content/> टैग के उपयोग के समान ही। इन तत्वों में किसी भी प्रकार की सामग्री हो सकती है - सरल स्ट्रिंग से जेएसएफ तत्वों तक।

इसलिए, यह सब एक साथ लाने के लिए ...

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 --> 

में पेज।एक्सएचटीएमएल:

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

आप भी इस तरह के अलग अलग डेटा के साथ पृष्ठ के घटकों का पुन: उपयोग करने की क्षमता के रूप में Facelets, के साथ कुछ अन्य लाभ मिलेंगे:

<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> 

और यह के रूप में प्रस्तुत करना होगा।

(और जानकारी प्रदान करने के लिए संपादित।)

2

मैं पिछले परियोजनाओं में sitemesh का उपयोग किया है और यह स्थापित करने के लिए बहुत आसान है। अनिवार्य रूप से, आप सजावटी बनाते हैं जो मास्टर पेज के समकक्ष होते हैं। फिर आप परिभाषित करते हैं कि कौन से बच्चे पृष्ठ कौन से सजावटी उपयोग करते हैं। अधिक जानकारी के लिए introduction to sitemesh देखें।

संबंधित मुद्दे