2012-05-23 46 views
8

Cần truy cập phần tử thứ nhất và thứ 2 của danh sách trong mẫu.Truy cập các phần tử theo chỉ mục trong một Mẫu FTL

Mã của tôi Java:

myMap.put("key", Arrays.asList("val1", "val2"); 

FTL My Template:

<#list myMap?keys as key> 
${myMap[key][0]}, ${myMap[key][1]} 

< - dòng trên không thành công với biểu hiện không xác định trên myMap [key] [0]. Tôi đã kiểm tra và myMap [key] là một SimpleSequence. Ngoài ra, đã thử $ {myMap [key]? First} và thất bại với cùng một lỗi. Bất kỳ ý tưởng?

+0

Tôi vừa làm điều gì đó tương tự và đã chỉ định trước tiên. Giống như <#assign x = myMap [key]> Nó hoạt động cho mục đích của tôi, hy vọng nó cũng sẽ phù hợp với bạn. – geekonablog

Trả lời

4

[0][1] phù hợp với điều này, nhưng có vẻ như chuỗi có 0 phần tử hoặc các thành phần đó là null. ${myMap[key]?size} in là gì? BTW, bạn có thể viết ${myMap[key][0]!'some default'} nếu bạn muốn nhận được một giá trị ngay cả khi mặt hàng đó không tồn tại hoặc null.

+0

Vấn đề là một phần tử null, cú pháp mặc định đã làm các trick! – shameed

2

Vấn đề của bạn là bạn đặt Danh sách vào đối tượng 'myMap' bằng khóa: "key" rồi thử và truy cập nó bằng khóa: "keys".

Đây là lý do tại sao bạn đã nhận được một biểu thức không xác định, để sửa chữa nó:

<#list myMap?key as k> 
${myMap[k][0]}, ${myMap[k][1]} 

hoặc tất nhiên bạn có thể thay đổi mã java của bạn để

myMap.put("keys", Arrays.asList("val1", "val2"); 

và sử dụng mã FTL như vậy.

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