संपादित करें: मेरे प्रारंभिक उत्तर में मैंने इस जावास्क्रिप्ट फ़ाइल को सार्वजनिक URL से उपलब्ध कराने की आवश्यकता को अनदेखा कर दिया। उस तरीके के लिए शोध करते समय, मुझे एहसास हुआ कि मेरा पूरा दृष्टिकोण त्रुटिपूर्ण था। इसलिए, मैं अपना मूल उत्तर अंत तक ले जाता हूं और यहां एक अधिक से अधिक बिंदु प्रदान करता हूं।
क्रम में एक सार्वजनिक URL पर एक पाठ संसाधन (जावास्क्रिप्ट या सीएसएस), आप जोड़कर WicketApplication
में अपने init()
विधि संपादित करने की आवश्यकता को प्रकाशित करने पर:
String resourceKey = "DYN_RES_KEY";
//load your text template
final TextTemplate textTemplate = new PackagedTextTemplate(MyPage.class, "script.js", "text/javascript", "UTF-8");
//add the resource
getSharedResources().add(resourceKey, new Resource() {
@Override
public IResourceStream getResourceStream() {
String queryParam = getParameters().getString("paramName");
//...do whatever you need with the parameters...
Map<String,Object> vars = new HashMap<String,Object>();
vars.put("param", queryParam);
String stringValue = textTemplate.asString(vars);
return new StringResourceStream(stringValue, textTemplate.getContentType());
}
});
//mount the resource at some public URL
mountSharedResource("/resource", Application.class.getName() + "/" + resourceKey);
//make alias, optional
getSharedResources().putClassAlias(MyPage.class, "scripts");
अस्वीकरण: इस कोड आईडीई में लिखा और नहीं कर रहा है कभी नहीं भाग गया इस तरह, यह संकलन भी नहीं हो सकता है। फिर भी, यह पूरा करने के तरीके को स्पष्ट करने के लिए पर्याप्त होना चाहिए।
यह उत्तर "Dynamically Generate a CSS Stylesheet" और "Wicket Dynamic Image URL" पर आधारित है, अधिक जानकारी के लिए उन स्रोतों को देखें।
मूल जवाब (उपयोगी आप अपने विकेट पेज में JavaScript या CSS बाहर से संदर्भित फ़ाइल को जोड़ने के लिए है, लेकिन यह सार्वजनिक रूप से दिखाई नहीं कर चाहते हैं): बाहर
चेक विकेट विकी और WICKET-2890 में "Dynamically Generate a CSS Stylesheet" पृष्ठ जिरा में मुद्दा विकेट 1.4.10 के बाद से, TextTemplateResourceReference कक्षा अब विकेट कोर का हिस्सा है, इसलिए आपको इसे कॉपी-पेस्ट करने की आवश्यकता नहीं है।
विकी पृष्ठ सीएसएस पृष्ठ का उल्लेख करता है, लेकिन दृष्टिकोण जावास्क्रिप्ट या किसी अन्य गैर-मार्कअप टेक्स्ट सामग्री के लिए समान है।
हाय, फिर आप किसी अन्य साइट से उस सीएसएस/जावास्क्रिप्ट को कॉल कैसे करते हैं? निर्देश केवल दिखाते हैं कि इसे अपने पृष्ठों पर कैसे शामिल किया जाए। धन्यवाद, टॉम – Tom
मेरा जवाब संपादित किया –
हाय नीम - इसके लिए धन्यवाद - मैं इसे आज़माउंगा। – Tom