我有一个Java数组,例如:
String[] arr = new String[] {"123","doc","projectReport.doc"};
在我看来,访问的自然方式是:
#set($att_id = $arr[0])
#set($att_type = $arr[1])
#set($att_name = $arr[2])
但它并不起作用。我带着这个变通方法而来。但是对于这样一个简单的任务,它的代码有点太多了。
#set($counter = 0)
#foreach($el in $arr)
#if($counter==0)
#set($att_id = $el)
#elseif($counter==1)
#set($att_type = $el)
#elseif($counter==2)
#set($att_name = $el)
#end
#set($counter = $counter + 1)
#end
还有别的办法吗?
发布于 2009-02-02 22:58:32
您可以使用use Velocity 1.6:对于名为$array
的数组,可以简单地执行$array.get($index)
。
在即将到来的Velocity 1.7中,人们将能够使用$array[$index]
(以及$list[$index]
和$map[$key]
)。
发布于 2008-10-10 15:56:53
您可以使用Arrays.asList(T... a)
将数组包装在List
中。新的列表对象是由原始数组支持的,所以它不会浪费地分配副本。即使对新列表所做的更改也会传播回数组。
然后,您可以使用$list.get(int index)
在Velocity中获取您的对象。
如果只需要从数组中获取一个或两个对象,也可以使用Array.get(Object array, int index)
从数组中获取项。
发布于 2009-12-22 14:22:06
String[] arr = new String[] {"123", "doc", "projectReport.doc"};
在我看来,访问的自然方式是:
#set($att_id = $arr[0])
#set($att_type = $arr[1])
#set($att_name = $arr[2])
它的值可以通过使用$array.get("arr", 1)
来获取,因为没有直接的方法可以像velocity中的$att_id = $arr[0]
那样从数组中获取值。
希望它能正常工作:)
https://stackoverflow.com/questions/191844
复制相似问题