2011-10-17 86 views
3

我試圖調用Velocity模板中的hasNext方法,以便根據foreach循環中的位置來實現行爲 - 只有hasNext不像記錄的那樣工作。Velocity hasNext方法

這裏是從速度的用戶指南片段,對使用hasNext

速度現在還提供了一個簡單的方法來告訴你,如果是在一個循環的最後一次迭代:

#foreach($customer in $customerList) 
    $customer.Name#if($foreach.hasNext),#end 
#end 

這裏是我的版本:

#foreach ($nav_item in $priNavItems) 
    ... 
    #if ($foreach.hasNext) 
    <img alt="" class="dive" src="/olp-theme/images/custom/dive.png"> 
    #end 
#end 

有沒有人蜂n在Velocity模板的#foreach循環中成功調用此方法?也許在不同的名稱下(如count爲$velocityCount)?

任何/所有的意見和方向讚賞 - 謝謝!

+0

你使用哪個速度版本? – serg

+0

我沒有在文檔中看到這種方法調用:http://velocity.apache.org/engine/devel/vtl-reference-guide.html#aforeach_-_Loops_through_a_list_of_objects!那麼你看到的錯誤是什麼?有一個'$ foreach.count',我想這是對循環中迭代器的一個簡單的反向引用,所以你可以在其上調用'hasNext'。 – phoet

+0

使用的速度版本是1.6.3(來自清單),並嵌入在Liferay開源門戶平臺的代碼庫中。速度在線文檔在這裏引用了hasNext方法:http://velocity.apache.org/engine/devel/user-guide.html#Loops –

回答

2

Velocity 1.6.3不支持此功能; $foreach.hasNext功能由ForeachScope類別1.7+(docs)提供。

聯機文檔是指當前版本;當使用早期版本時,您需要參考特定版本的文檔。