首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >在Velocity中访问数组的最佳方式是什么?

在Velocity中访问数组的最佳方式是什么?
EN

Stack Overflow用户
提问于 2008-10-10 15:22:55
回答 7查看 64.5K关注 0票数 25

我有一个Java数组,例如:

代码语言:javascript
复制
String[] arr = new String[] {"123","doc","projectReport.doc"};

在我看来,访问的自然方式是:

代码语言:javascript
复制
 #set($att_id = $arr[0])
 #set($att_type = $arr[1])
 #set($att_name = $arr[2])

但它并不起作用。我带着这个变通方法而来。但是对于这样一个简单的任务,它的代码有点太多了。

代码语言:javascript
复制
#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

还有别的办法吗?

EN

回答 7

Stack Overflow用户

发布于 2009-02-02 22:58:32

您可以使用use Velocity 1.6:对于名为$array的数组,可以简单地执行$array.get($index)

在即将到来的Velocity 1.7中,人们将能够使用$array[$index] (以及$list[$index]$map[$key])。

票数 27
EN

Stack Overflow用户

发布于 2008-10-10 15:56:53

您可以使用Arrays.asList(T... a)将数组包装在List中。新的列表对象是由原始数组支持的,所以它不会浪费地分配副本。即使对新列表所做的更改也会传播回数组。

然后,您可以使用$list.get(int index)在Velocity中获取您的对象。

如果只需要从数组中获取一个或两个对象,也可以使用Array.get(Object array, int index)从数组中获取项。

票数 10
EN

Stack Overflow用户

发布于 2009-12-22 14:22:06

代码语言:javascript
复制
String[] arr = new String[] {"123", "doc", "projectReport.doc"}; 

在我看来,访问的自然方式是:

代码语言:javascript
复制
 #set($att_id = $arr[0]) 
 #set($att_type = $arr[1]) 
 #set($att_name = $arr[2]) 

它的值可以通过使用$array.get("arr", 1)来获取,因为没有直接的方法可以像velocity中的$att_id = $arr[0]那样从数组中获取值。

希望它能正常工作:)

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/191844

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档