NVelocity的宏使用
一、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 )
??進入第 $depth 層<br/>
?#end
?#recurs( 3 )
?
?執行結果:
???進入第 3 層
???進入第 2 層
???進入第 1 層
???進入第 1 層
???進入第 2 層
???進入第 3 層
?注:在遞歸調用時,注意通常不要把一個對象的屬性傳為參數遞歸調用,上例中,如果$depth是一個對象的話,那么用#recurs( $depth.attribute)話,模板輸出時候往往有問題,而且又查不出來,這里記錄一下,忘以后不要出現這樣的錯誤。究其原因,我想是由于是object類型,往往在調用時認不出對象的類型吧(暫時只能這樣去理解了,沒深層次去研究過)。
本文轉自 netcorner 博客園博客,原文鏈接:?http://www.cnblogs.com/netcorner/archive/2010/07/07/1772980.html? ,如需轉載請自行聯系原作者
總結
以上是生活随笔為你收集整理的NVelocity的宏使用的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: C++实现一个栈(使用类模板)
- 下一篇: FOSCommentBundle功能包: