2012-01-05 6 views
5

मैं उपयोग कर रहा हूँ वेग Templating भाषा और वर्तमान में है:Velocity में string.split का उपयोग करने के बाद सरणी के तत्वों का उपयोग कैसे करें?

#set ($stringList = $string.split(",")) 

जो ठीक काम करता है और एक ',' परिसीमक के रूप में की उम्मीद के रूप में प्रयोग स्ट्रिंग ऊपर विभाजित होता है।

मेरे सवाल यह है कि अब मैं $ stringList में तत्वों में से प्रत्येक का उपयोग करते हैं है?

मैं कोशिश की है:

$stringList.get(0) 
$stringList[0] 
$stringList.[0] 
${stringList}.get(0) 

मैं JIRA में वेग का उपयोग कर रहा है और JIRA वेग संस्करण 1.4 जो जाहिरा तौर पर के रूप में ऊपर की कोशिश की सरणियों तक पहुँचने के लिए समर्थन नहीं है का उपयोग होता है।

किसी भी मदद की बहुत सराहना की जाती है।

+1

$ stringList.get (0) काम करता है मेरे लिए। –

उत्तर

1

यह काम करता है जब मैं एक सूची Arrays.asList() का उपयोग करने के लिए सरणी परिवर्तित और फिर तत्वों का उपयोग करने की सूची से तरीकों का उपयोग।

मैं जोड़ने के संदर्भ के लिए निम्नलिखित:

context.put("arrays", Arrays.class); 

वेग टेम्पलेट में मैं का उपयोग करें:

#set ($array = $getarray.getArray()) 

$arrays.asList($array).get(0) 

एक स्ट्रिंग-सरणी के साथ के रूप में

new String[] {"test1", "test2", "test3", "test4"}; 

मैं पाने की उम्मीद इस प्रकार है उत्पादन:

test1 
+0

सुझाव के लिए धन्यवाद, लेकिन यह काम नहीं लग रहा है। फिर भी धन्यवाद। – davey1990

+0

मैं इसे अब की कोशिश की और यह ऊपर सूचीबद्ध चरणों के साथ मौजूदा कोड में काम किया है, तो हम देख सकते हैं कि क्यों यह आपके लिए काम नहीं है कि आप आप पोस्ट कर सकते हैं? – centic

6

वेग 1.6 में परीक्षण किया गया।

#foreach ($element in $string.split(";")) 
    $element 
#end 
+0

यह भी काम करता है। धन्यवाद! – davey1990

0

तत्वों को इस तरह के सरणी में धक्का देना भी संभव है।

#set ($matchingProducts = []) 
#set($bar = $matchingProducts.add($p)) 
1

वेग 1.6 के रूप में, सभी सरणी संदर्भ अब "जादुई" इलाज किया जैसे कि वे कर रहे हैं निश्चित लंबाई सूची नहीं है। इसका मतलब है कि आप सरणी संदर्भों पर java.util.List विधियों को कॉल कर सकते हैं। इसलिए, यदि आप एक सरणी के लिए एक संदर्भ है (मान लीजिए कि यह एक एक तीन मूल्यों के साथ String[] है भी नहीं), तो आप कर सकते हैं:

$myarray.isEmpty() 

$myarray.size() 

$myarray.get(2) 

$myarray.set(1, 'test') 

स्रोत: http://velocity.apache.org/engine/releases/velocity-1.7/user-guide.html#methods