一、NVelocity使用參數
示例:
1.建立宏
#macro( test $range $arrayList )
...
#end
2.調用宏
#test([-9,-1] ["favorite", "color"])
通過以上示例,你隻需要一個為每一個需要傳遞的參數提供了名稱的#macro指令,這些參數用空格進行分隔。如上例中#macro( test $range $arrayList )“test”是宏名,$range $arrayList是參數。用"#"+宏名(參數1 參數2...)來調用宏。
二、NVelocity遞歸調用
嵌套,最簡單的情況就是在NVelocity 中用到macro裡調用另外一個macro,這是在實際代碼開發中使用得最頻繁的一種。遞歸,是一種特殊類型的嵌套,它是在NVelocity中的macro裡調用自身,但這種情況并不太常見。
#macro( recurs $depth )
進入第 $depth 層<br/>
#set( $depth = $depth - 1 )
#if ( $depth > 0 )
#recurs( $depth )
#end
#set( $depth = $depth + 1 )
#end
#recurs( 3 )
執行結果:
進入第 3 層
進入第 2 層
進入第 1 層
注:在遞歸調用時,注意通常不要把一個對象的屬性傳為參數遞歸調用,上例中,如果$depth是一個對象的話,那麼用#recurs( $depth.attribute)話,模闆輸出時候往往有問題,而且又查不出來,這裡記錄一下,忘以後不要出現這樣的錯誤。究其原因,我想是由于是object類型,往往在調用時認不出對象的類型吧(暫時隻能這樣去了解了,沒深層次去研究過)。
本文轉自 netcorner 部落格園部落格,原文連結: <b>http://www.cnblogs.com/netcorner/archive/2010/07/07/1772980.html</b> ,如需轉載請自行聯系原作者