2008-09-29 15 views
13

क्या Velocity टेम्पलेट से निरंतर मूल्य (यानी जावा क्लास में परिभाषित एक सार्वजनिक स्थिर अंतिम चर) तक पहुंच बनाना संभव है?अपाचे वेग टेम्पलेट से निरंतर मानों तक पहुंच?

मैं कुछ इस तरह लिखने में सक्षम होना चाहते हैं:

#if ($a lt Long.MAX_VALUE) 

लेकिन यह जाहिरा तौर पर सही वाक्य रचना नहीं है।

उत्तर

10

कई तरीके हैं।

1) आप सीधे संदर्भ में मूल्य डाल सकते हैं।

2) आप FieldMethodizer का उपयोग कक्षा में सभी सार्वजनिक स्थैतिक फ़ील्ड उपलब्ध कराने के लिए कर सकते हैं।

3) आप एक कस्टम Uberspect कार्यान्वयन का उपयोग कर सकते हैं जिसमें लुकअप ऑर्डर में सार्वजनिक स्थैतिक फ़ील्ड शामिल हैं।

4) आप VelocityTools से FieldTool का उपयोग कर सकते हैं।

मैं कुछ मूल्यों, 2 कुछ वर्गों, 3 वर्गों और मूल्यों के बहुत सारे के लिए के लिए के लिए 1 की सलाह देते हैं, और 4 अगर आप पहले से VelocityTools उपयोग कर रहे हैं और नहीं तो 1 या 2

5

वेग केवल इसके संदर्भ में जो कुछ भी पाता है उसका उपयोग कर सकता है, उदाहरण के बाद

context.put("MaxLong", Long.MAX_VALUE); 

आप स्टैटिक्स, या वेग के संदर्भ में चीजों की पहुँच स्थिर सदस्यों का उपयोग नहीं कर सकते हैं की वजह से करने के लिए अपने काम करता है देखने (देखें वेग के Property lookup rules)। करने के लिए सबसे अच्छी बात वह मूल्य जोड़ना है जिसे आप स्पष्ट रूप से अपने संदर्भ में जांचना चाहते हैं।


दूसरी दृष्टि पर संपादित करें अक्टूबर 6, यह स्थिर सदस्यों का उपयोग करने के लिए संभव हो रहा है। अधिक जानकारी के लिए वेग Developer guide - Support for "Static Classes" देखें। हालांकि, मैंने यह कोशिश नहीं की है।

+2

स्टेटिक कक्षाओं के लिए समर्थन का प्रयोग करेंगे , स्थैतिक क्षेत्रों, केवल स्थैतिक तरीकों तक विस्तारित नहीं है। इसके अलावा, यह केवल नवीनतम संस्करण 1.6-बीटा 1 में है। –

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