2012-01-05 58 views
5

Tôi đang sử dụng Velocity Templating Ngôn ngữ và hiện đang có:Làm cách nào để truy cập các phần tử của mảng sau khi sử dụng string.split trong Velocity?

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

mà hoạt động tốt và tách chuỗi bằng cách sử dụng một '' như một dấu phân cách như mong đợi.

Câu hỏi của tôi là làm cách nào để tôi truy cập từng phần tử trong $ stringList?

Tôi đã thử:

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

Tôi đang sử dụng Velocity trong JIRA và JIRA xảy ra để sử dụng Velocity phiên bản 1.4 mà dường như không có hỗ trợ cho việc truy cập các mảng như cố trên.

Bất kỳ trợ giúp nào được đánh giá cao.

+1

$ stringList.get (0) công trình cho tôi. –

Trả lời

1

Nó hoạt động khi tôi chuyển đổi mảng thành Danh sách bằng cách sử dụng Arrays.asList() và sau đó sử dụng các phương thức từ Danh sách để truy cập các phần tử.

tôi thêm dòng sau vào bối cảnh:

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

Trong mẫu vận tốc tôi sử dụng:

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

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

Với một String-Array như sau

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

tôi nhận được sự mong đợi đầu ra:

test1 
+0

Cảm ơn đề xuất centic nhưng dường như nó không hoạt động. Dù sao cũng cảm ơn bạn. – davey1990

+0

Tôi đã thử nó ngay bây giờ và nó đã làm việc với các bước được liệt kê ở trên, bạn có thể gửi cho bạn mã hiện tại để chúng tôi có thể thấy lý do tại sao nó không hoạt động cho bạn? – centic

6

Đã kiểm tra trong vận tốc 1.6.

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

Điều này cũng hoạt động. Cảm ơn! – davey1990

0

Nó cũng có thể đẩy các phần tử vào một mảng như thế này.

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

Tính đến Velocity 1.6, tất cả các tài liệu tham khảo mảng bây giờ là "kỳ diệu" xử lý danh sách như thể họ đang cố định chiều dài. Điều này có nghĩa là bạn có thể gọi các phương thức java.util.List về tham chiếu mảng. Vì vậy, nếu bạn có một tham chiếu đến một mảng (giả sử này là một String[] với ba giá trị), bạn có thể làm:

$myarray.isEmpty() 

$myarray.size() 

$myarray.get(2) 

$myarray.set(1, 'test') 

Nguồn: http://velocity.apache.org/engine/releases/velocity-1.7/user-guide.html#methods

Các vấn đề liên quan