मेरी वेग टेम्पलेट (.vm फ़ाइल) में मैं VelocityContext
में मौजूद सभी चर या विशेषताओं के माध्यम से कैसे लूप कर सकता हूं? नीचे दिए गए कोड के संदर्भ में, मैं टेम्पलेट को संदर्भ में पारित सभी फलों के नाम और गिनती लिखना चाहता हूं।VelocityContext में सभी चर लूप कैसे करें?
Map<String, Object> attribues = ...;
attribues.put("apple", "5");
attribues.put("banana", "2");
attribues.put("orange", "3");
VelocityContext velocityContext = new VelocityContext(attribues);
velocityEngine.mergeTemplate(templateLocation, encoding, velocityContext, writer);
धन्यवाद। मैं एक पुष्टिकरण की तलाश में था कि यह सीधे संभव नहीं है। हालांकि, जब मैं आपके कोड को निष्पादित करता हूं तो Velocity की 'Foreach.render' विधि' ConcurrentModificationException' फेंक रही है। क्या यह आपके लिए काम करता है? मैं वेग 1.7 का उपयोग कर रहा हूँ। – Somu
क्या आप परिणाम छापने के अलावा कुछ और कर रहे हैं, जैसा कि मेरे उदाहरण में है? एक संभावना यह होगी कि प्रविष्टियां प्राप्त करने के बाद संदर्भ में '$ एंट्री' चर जोड़ा गया है, जो वास्तव में 'ConcurrentModificationException' को ट्रिगर करेगा। 'त्वरित गुण' चर के लिए एक सरल 'हैश मैप' के बजाय 'ConcurrentHashMap' का उपयोग करना एक त्वरित कार्यवाही है। –
नहीं, मैं सरल पाश और प्रिंटिंग के अलावा कुछ भी नहीं कर रहा हूं। 'ConcurrentHashMap' का उपयोग करके दिलचस्प रूप से 'StackOverflowError' फेंकता है! मैं अभी भी पुष्टि करने के लिए आपका उत्तर स्वीकार करने जा रहा हूं कि टेम्पलेट से संदर्भ तक पहुंचने का कोई सीधा तरीका नहीं है। – Somu