能夠從Apache官方網站自帶的例子中查找,位置\velocity-tools-1.4-src\examples\showcase。 javascript
Apache官方網站自帶的例子有下面一些: html
使用Velocity Tools的時候,必定要在toolbox.xml中指定,而後在應用的web.xml中配置。 java
這裏,關於jar包的引用,極可能出現一種Velocity運行時異常,例如: web
信息: Velocity [warn] org.apache.velocity.runtime.exception.ReferenceException: reference : template = /templates/context.vm [line 12,column 37] : $context is not a valid reference.
2008-4-23 9:41:45 org.apache.catalina.core.ApplicationContext log
信息: Velocity [warn] org.apache.velocity.runtime.exception.ReferenceException: reference : template = /templates/context.vm [line 16,column 37] : $context.keys is not a valid reference.
2008-4-23 9:41:45 org.apache.catalina.core.ApplicationContext log
信息: Velocity [warn] org.apache.velocity.runtime.exception.ReferenceException: reference : template = /templates/context.vm [line 20,column 37] : $context.toolbox is not a valid reference.
2008-4-23 9:41:45 org.apache.catalina.core.ApplicationContext log
信息: Velocity [warn] org.apache.velocity.runtime.exception.ReferenceException: reference : template = /templates/context.vm [line 24,column 37] : $context.values is not a valid reference. sql
關鍵就是jar包的選擇有問題,還多是沒有加入指定的工具的jar包。 apache
選擇幾個工具: api
org.apache.velocity.tools.generic.ComparisonDateTool cookie
在toolbox.xml中配置以下所示: app
<tool>
<key>date</key>
<scope>application</scope>
<class>org.apache.velocity.tools.generic.ComparisonDateTool</class>
<parameter name="format" value="yyyy-MM-dd"/>
<parameter name="depth" value="2"/>
<parameter name="skip" value="month"/>
</tool> dom
date就像一個內置對象,你隨時能夠在.vm的Velocity模板中使用。
關於date,以下所示:
函數舉例顯示結果$date 2008-04-22 $date.long 2008年4月22日 下午10時58分54秒 $date.medium_time 22:58:54 $date.full_date 2008年4月22日 星期二 $date.yyyy 2008 $date.get('default','short') 2008-4-22 下午10:58 $date.get('yyyy-M-d H:m:s') 2008-4-22 22:58:54 $date.whenIs('2008-04-20') 2 days 22 hours ago $date.whenIs('2008-04-20').full 2 days 22 hours 58 minutes 54 seconds 484 milliseconds ago $date.whenIs('2008-04-20').days -2 $date.whenIs('2008-04-20') 22 hours 58 minutes ago $date.whenIs('2008-04-20','2008-04-20') same time $date.difference('2008-04-20', '2008-04-20') 2 days $date.whenIs('2008-04-20').days -2
org.apache.velocity.tools.generic.MathTool
在toolbox.xml中配置以下所示:
<tool>
<key>math</key>
<scope>application</scope>
<class>org.apache.velocity.tools.generic.MathTool</class>
</tool>
關於math,以下所示:
函數舉例顯示結果$math.add("10","4") 14 $math.sub("100","20") 80 $math.mul("11","7") 77 $math.div("100","5") 20 $math.idiv("100","5") 20 $math.pow("2","5") 32 $math.mod("13","5") 3 $math.max("99","16") 99 $math.min("99","16") 16 $math.abs("-99") 99 \$math.cell("99.26") $math.cell("99.26") $math.floor("99.26") 99 $math.random 0.7663665545444911 $math.random("1","10") 2 $math.roundTo("2","5") 5.0 $math.toInteger("15") 15 $math.toDouble("15") 15.0 $math.toNumber("15") 15
org.apache.velocity.tools.generic.NumberTool
在toolbox.xml中配置以下所示:
<tool>
<key>number</key>
<scope>application</scope>
<class>org.apache.velocity.tools.generic.NumberTool</class>
<parameter name="format" value="#0.0"/>
</tool>
關於number,以下所示:
函數舉例顯示結果$number org.apache.velocity.tools.generic.NumberTool@32c41c $number.currency("35") ¥35.00 $number.format #0.0 $number.locale zh_CN $number.format("35") 35.0 $number.integer("35.47") 35 $number.number("35.47") 35.47 $number.percent("0.3547") 35% $number.toNumber("35.47") 35.47
org.apache.velocity.tools.generic.SortTool
在toolbox.xml中配置以下所示:
<tool>
<key>sorter</key>
<scope>application</scope>
<class>org.apache.velocity.tools.generic.SortTool</class>
</tool>
關於sorter,以下所示:
函數舉例顯示結果$sorter.sort(['d','a','b','c']) [a, b, c, d] $sorter.sort([5,1,12,3]) [1, 3, 5, 12]
sorter工具,能夠對指定的集合進行排序,如List,Array,Map等等。
org.apache.velocity.tools.generic.EscapeTool
在toolbox.xml中配置以下所示:
<tool>
<key>esc</key>
<scope>application</scope>
<class>org.apache.velocity.tools.generic.EscapeTool</class>
</tool>
關於esc,以下所示:
函數舉例顯示結果$esc org.apache.velocity.tools.generic.EscapeTool@e09a07 $esc.b \ $esc.backslash \ $esc.d $ $esc.dollar $ $esc.e ! $esc.exclamation ! $esc.h # $esc.hash # $esc.q " $esc.quote " \esc.s esc.s $esc.singleQuote ' $esc.html("$esc.backslash") \ $esc.url("shirdrn.org/users/index.vm?id=1&name=異域王者") shirdrn.org%2Fusers%2Findex.vm%3Fid%3D1%26name%3D%E5%BC%82%E5%9F%9F%E7%8E%8B%E8%80%85 $esc.sql("SELECT * FROM PERSON WHERE ID='2008042319831'") SELECT * FROM PERSON WHERE ID=''2008042319831'' \$esc.java() [說明]Escapes the characters in a String using Java String rules. \$esc.javascript() [說明]Escapes the characters in a String using JavaScript String rules. \$esc.xml() [說明]Escapes the characters in a String using XML entities. \$esc.propertyKey() [說明]Escapes the characters in a String using java.util.Properties rules for escaping keys. \$esc.propertyValue() [說明]Escapes the characters in a String using java.util.Properties rules for escaping values.