मैं एक विकेट न्यूबी हूं। यह सिर्फ विकेट जीवन चक्र की मेरी अज्ञान हो सकती है, इसलिए कृपया मुझे प्रबुद्ध करें! मेरी समझ यह है कि विकेट वेबपेज ऑब्जेक्ट्स को एक बार तत्काल चालू किया जाता है और फिर क्रमबद्ध किया जाता है। इससे मेरे लिए भ्रम का एक बिंदु सामने आया है, नीचे देखें।विकेट: घटक कहां जोड़ें? निर्माता? या पहले से पहले?
वर्तमान में मेरे पास एक टेम्पलेट क्लास है जिसे मैं उपclass करना चाहता हूं।
protected void onBeforeRender() {
add(new Label("title", getTitle()));
super.onBeforeRender();
}
protected String getTitle() {
return "template";
}
उपवर्ग:
protected String getTitle() {
return "Home";
}
यह बहुत अच्छी तरह से काम करता है मैं प्रदर्शन कैसे उपवर्ग में टेम्पलेट के व्यवहार को ओवरराइड करने के लिए विकेट डॉक्स में उदाहरण का पालन किया। मेरे लिए यह स्पष्ट नहीं है कि इसके लिए "सर्वोत्तम प्रथाएं" हैं। ऐसा लगता है कि पृष्ठ के लिए प्रत्येक अनुरोध पर पहले सेरेंडर() को बुलाया जाता है, नहीं? ऐसा लगता है कि अगर पृष्ठ पर कुछ भी है तो पहले से ही एक पृष्ठ पर अधिक प्रसंस्करण किया जाएगा। मैं आसानी से अन्य विकेट उदाहरणों के उदाहरण का पालन कर सकता हूं और कन्स्ट्रक्टर में कुछ घटकों को जोड़ सकता हूं जिन्हें मैं ओवरराइड नहीं करना चाहता, लेकिन फिर मैंने घटक तर्क से दो स्थानों में विभाजित किया है, कुछ ऐसा करने में मुझे संकोच नहीं है।
यदि मैं एक घटक जोड़ता हूं जिसे मैं सभी उप-वर्गों में रखना चाहता हूं, तो क्या मुझे इसे निर्माता या ऑनफ्रेंडर() पर जोड़ना चाहिए?
धन्यवाद। लेकिन अगर मैं दोनों को मिश्रण नहीं कर सकता, तो टेम्पलेट व्यवहार को ओवरराइड करने का अनुशंसित तरीका क्या है? एक कन्स्ट्रक्टर में अतिरंजित तरीकों को बुलाओ बुरी आदत है। – gmallett
यह तब एक अपवाद होगा :-) – Eelco