1. 程式人生 > >Velocity(4)——引入指令和#Parse 指令

Velocity(4)——引入指令和#Parse 指令

層次 必須 dep 屬性 mil das eight mar height

#Include和#Parse都是用於將本地文件引入當前文件的指令,而且被引入的文件必須位於TEMPLATE_ROOT。這兩者之間有一些區別。

#Include

被#Include引入的文件,其內容不會被Velocity引擎解析,所以這些文件應該是靜態模板,即不含有VTL的模板。使用#Include()指令時,參數是被雙引號括起來的文件名或者是表示文件名的變量。如果有多個文件,以逗號隔開即可。比如#Include("a.gif", "b.html", $file)。

#Parse

#Parse用來在當前模板中引入並執行另一個(本地的)模板——可以是靜態的,也可以是動態的——並把結果嵌入到當前位置。#Parse()指令的參數,可以是一個雙引號括起來的文件名,也可以是一個變量,但是它不能接受多個參數。

被#Parse引入的文件仍然可以使用#Parse指令。在velocity.properties文件中有一個屬性directive.parse.max.depth,默認值是10,它指定了#Parse嵌套的最大層次。既然#Parse嵌套是允許的,#Parse遞歸也是允許的。

假如a.vm #Parse b.vm,那麽a.vm中定義的變量$v,在b.vm中可以隨便使用。如果b.vm也定義了$v,那麽b.vm中用到的將會是自己的$v,而不是a.vm中的$v。

#Stop

#Stop指令會停止模板引擎的執行,並返回。這在debug中比較有用。

Velocity(4)——引入指令和#Parse 指令