1. What is Velocity?
Velocity is a Java-based template engine that provides a template language for referencing objects defined by Java code.
Velocity can create HTML pages and reserve placeholders. (The most basic use)
Velocity can generate Java and SQL source code based on templates. (Never seen it)
Automatically generate email. (Never seen)
Read XML and convert it into the required document format, usually HTML. (Never seen it)
Single line
##Multiple lines#* *
#Code block comments (information) ##* *
Definition:
#set( $foo = "Velocity" )
Use:
$foo ${foo}
#set( $greatlakes = ["Superior","Michigan","Huron","Erie","Ontario"] )
#if( $foo < 10 ) <strong>Go North</strong> #elseif( $foo == 10 ) <strong>Go East</strong> #else <strong>Go West</strong> #end
#foreach( $customer in $customerList ) #if( $foreach.count > 5 ) #break #end $customer.Name #end
#include( "one.vm" ) one.vm 不解析。 #parse( "me.vm" ) me.vm 解析。
#define( $block ) Hello $who #end #set( $who = 'World!' ) $block
No parameters
#macro( d ) <tr><td></td></tr> #end #d()
Single parameter
#macro( d ) <tr><td>$!bodyContent</td></tr> #end #@d()Hello#end
Any parameters
Definition
#macro( tablerows $color $somelist ) #foreach( $something in $somelist ) <tr><td bgcolor=$color>$something</td></tr> #end #end
Call
#set( $greatlakes = ["Superior","Michigan","Huron","Erie","Ontario"] ) #set( $color = "blue" )
Output
<table><tr><td bgcolor="blue">Superior</td></tr><tr><td bgcolor="blue">Michigan</td></tr><tr><td bgcolor="blue">Huron</td></tr><tr><td bgcolor="blue">Erie</td></tr><tr><td bgcolor="blue">Ontario</td></tr></table>
1. Various writing methods
$foo ## is the same as ${foo} $foo.getBar() ## is the same as $foo.Bar$data.setUser("jon") ## is the same as #set( $data.User = "jon" ) $data.getRequest().getServerName() ## is the same as $data.Request.ServerName## is the same as ${data.Request.ServerName}
2. Velocity variable is undefined
Use $!
, for example
$!foo
When foo is undefined, the output is blank string.
3. Velocity calling sequence
Velocity in $customer.address
, calling sequence:
getaddress()getAddress()get("address")isAddress()
4. #if ($foo)
Both cases return true:
(1) $foo is a boolean type and is true.
(2)$foo is not 0 or null.
5. #if ($foo == $bar)
Because Velocity variables are eventually output as strings, Velocity will automatically call .toString() to convert the variables into string.
So, $foo and $bar are compared as strings. Even if the types are different in the Java code, it is possible to return true.
Velocity 1.6 introduces strict reference mode, activated by setting the Velocity configuration property "runtime.references.strict" to true.
Velocity will throw an exception when encountering undefined or ambiguous situations.
Hope this article is helpful to you. by iamtjcn
The above is the detailed content of Velocity example tutorial sharing. For more information, please follow other related articles on the PHP Chinese website!