Home  >  Article  >  Java  >  Velocity example tutorial sharing

Velocity example tutorial sharing

零下一度
零下一度Original
2017-07-20 16:47:502142browse

1. What is Velocity?

Velocity is a Java-based template engine that provides a template language for referencing objects defined by Java code.

2. What can Velocity do?

  1. Velocity can create HTML pages and reserve placeholders. (The most basic use)

  2. Velocity can generate Java and SQL source code based on templates. (Never seen it)

  3. Automatically generate email. (Never seen)

  4. Read XML and convert it into the required document format, usually HTML. (Never seen it)

3. Velocity example

Velocity annotation

Single line
##Multiple lines#* *
#Code block comments (information) ##* *

#Velocity variable

Definition:

#set( $foo = "Velocity" )

Use:

$foo
${foo}

Velocity collection

#set( $greatlakes = ["Superior","Michigan","Huron","Erie","Ontario"] )

Velocity condition judgment

#if( $foo < 10 )
    <strong>Go North</strong>
#elseif( $foo == 10 )
    <strong>Go East</strong>
#else
    <strong>Go West</strong>
#end

Velocity loop

#foreach( $customer in $customerList )
    #if( $foreach.count > 5 )
        #break
    #end
    $customer.Name
#end

Velocity reference file

#include( "one.vm" ) one.vm 不解析。
#parse( "me.vm" ) me.vm 解析。

Velocity definition code block

#define( $block )
Hello $who
#end

#set( $who = &#39;World!&#39; )
$block

Velocity macro call

  • 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" )

    #tablerows( $color $greatlakes )

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>

Velocity filling in the pit

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 strict mode

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!

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn