NVelocity的宏使用
一、NVelocity使用參數(shù)
?示例:?
??1.建立宏
???#macro( test $range $arrayList )
????...
???#end
??2.調(diào)用宏
??#test([-9,-1] ["favorite", "color"])
?通過以上示例,你只需要一個為每一個需要傳遞的參數(shù)提供了名稱的#macro指令,這些參數(shù)用空格進行分隔。如上例中#macro( test $range $arrayList )“test”是宏名,$range $arrayList是參數(shù)。用"#"+宏名(參數(shù)1 參數(shù)2...)來調(diào)用宏。
??
??
二、NVelocity遞歸調(diào)用
?嵌套,最簡單的情況就是在NVelocity 中用到macro里調(diào)用另外一個macro,這是在實際代碼開發(fā)中使用得最頻繁的一種。遞歸,是一種特殊類型的嵌套,它是在NVelocity中的macro里調(diào)用自身,但這種情況并不太常見。
?
?#macro( recurs $depth )
??進入第 $depth 層<br/>
??#set( $depth = $depth - 1 )
??#if ( $depth > 0 )
???#recurs( $depth )
??#end
??#set( $depth = $depth + 1 )
??進入第 $depth 層<br/>
?#end
?#recurs( 3 )
?
?執(zhí)行結(jié)果:
???進入第 3 層
???進入第 2 層
???進入第 1 層
???進入第 1 層
???進入第 2 層
???進入第 3 層
?注:在遞歸調(diào)用時,注意通常不要把一個對象的屬性傳為參數(shù)遞歸調(diào)用,上例中,如果$depth是一個對象的話,那么用#recurs( $depth.attribute)話,模板輸出時候往往有問題,而且又查不出來,這里記錄一下,忘以后不要出現(xiàn)這樣的錯誤。究其原因,我想是由于是object類型,往往在調(diào)用時認不出對象的類型吧(暫時只能這樣去理解了,沒深層次去研究過)。
本文轉(zhuǎn)自 netcorner 博客園博客,原文鏈接:?http://www.cnblogs.com/netcorner/archive/2010/07/07/1772980.html? ,如需轉(zhuǎn)載請自行聯(lián)系原作者
總結(jié)
以上是生活随笔為你收集整理的NVelocity的宏使用的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: C++实现一个栈(使用类模板)
- 下一篇: FOSCommentBundle功能包: