2009-10-27 13 views
7

वर्तमान में, मेरे पास एक ऐसा एप्लिकेशन है जिसमें बेसपेज शामिल है जो हेडर (पैनल), पाद लेख (पैनल) और विरासत में पृष्ठ सामग्री के लिए केंद्र में है। जिस समस्या में मैं चल रहा हूं वह संसाधन संदर्भों के साथ है (शायद यह सही तरीका भी नहीं है)।विकेट एप्लिकेशन में वैश्विक स्तर पर सुलभ संसाधन

  1. , विश्व स्तर पर इस्तेमाल किया छवियों के लिए एक ही निर्देशिका है जे एस, सीएसएस
  2. रजिस्टर (या नहीं) उन संसाधनों इतना है कि वे से सुलभ हो सकता है: मैं एक समाधान है जो मेरा पीछा करने की अनुमति देगा रहा हूँ BasePage के लिए किसी भी विरासत में मिला पेज या भाई पृष्ठों मैं भविष्य
  3. में बना सकता है उन संसाधनों सीएसएस और जे एस के भीतर सुलभ (छवियों यूआरएल जैसे)

अब तक मैं कई उदाहरण हैं जो कैसे दिखाने के माध्यम से पढ़ा है होने की अनुमति दें एक घटक या आवेदन स्तर स्कू के लिए संसाधन पैकेज करने के लिए pe, लेकिन कोई भी ऐसा नहीं जो सभी 3 मुद्दों को संबोधित करता है, मैं सहायता की तलाश में हूं। यह महत्वपूर्ण है कि मुझे संदर्भ के लिए प्रत्येक घटक पैकेज में वैश्विक रूप से प्रयुक्त छवियों (आइकन, लोगो, आदि संपादित करें) की प्रतिलिपि बनाने की आवश्यकता नहीं है, और यह रखरखाव के कारणों के लिए अच्छा होगा कि इन बाइंडिंगों को वैश्विक संदर्भ में एक ही स्थान पर आसान संदर्भ के लिए बनाया जाना चाहिए और अद्यतन।

उत्तर

7

यह विकेट 1.4 के बाद से काफी बदल गया है। कृपया 'Adding Javascript or CSS using a Resource' in Wicket's Wiki

छवियों और अन्य संसाधनों के विश्व स्तर पर सुलभ (विशेष रूप से CSS और JS फ़ाइलों से) बनाने के लिए उन्हें अपने आवेदन के init में माउंट देखते हैं,() विधि:

mountSharedResource("/images/submit.jpg", new ResourceReference(MyComponent.class, "foo.jpg").getSharedResourceKey()); 

वहाँ नकल करने बिल्कुल कोई जरूरत नहीं है संसाधन किसी भी तरह से। संसाधन को घटक के समान पैकेज में होना आवश्यक नहीं है। हमारे अनुप्रयोगों में, हमने वैश्विक रूप से प्रयुक्त संसाधनों को एक समर्पित पैकेज में डाल दिया है (com.example.myapp.images कहें) और इसमें एक एकल वर्ग डालें (उदा। छवियाँस्कोप.जावा) - जेएस और सीएसएस के लिए समान है।

छवियों के लिए, आपको ResourceReference की आवश्यकता नहीं होगी क्योंकि आपको अपने कोड में दिए गए संदर्भों की आवश्यकता नहीं होगी (org.apache.wicket.markup.html.image.Image को छोड़कर)। जे एस और सीएसएस उपयोग

add(CSSPackageResource.getHeaderContribution(PanelOne.class, "PanelOne.css")); 

वैसे के लिए, मैं GitHub से एक little library called wicketstuff-merged-resources उपलब्ध के लेखक हूँ। इस लाइब्रेरी का उपयोग करके आप मैन्युअल माउंटिंग को अपने एप्लिकेशन के init() में छोड़ सकते हैं और इसके बजाय एनोटेशन का उपयोग कर सकते हैं।

संपादित करें: अद्यतन लिंक। दुर्भाग्यवश, विकेटस्टफ विकी में प्रलेखन अब चला गया प्रतीत होता है। यद्यपि some articles on our blog हैं।

+0

छोटे पुस्तकालय के लिए लिंक काम –

+0

सिंटेक्स भिन्न हो सकते हैं doesent: https://cwiki.apache.org/confluence/display/WICKET/Adding+Javascript+or+CSS+using+a+Resource – Sebas

+0

@Sebas आप ' री राइट। मैंने आपके लिंक के साथ शुरुआत में नोट जोड़ा है। जवाब मूल रूप से विकेट 1.4 के लिए लिखा गया था। – sfussenegger

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