Home > Java > javaTutorial > body text

Velocity example tutorial sharing

零下一度
Release: 2017-07-20 16:47:50
Original
2169 people have browsed it

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" )
Copy after login

Use:

$foo
${foo}
Copy after login

Velocity collection

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

Velocity condition judgment

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

Velocity loop

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

Velocity reference file

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

Velocity definition code block

#define( $block )
Hello $who
#end

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

Velocity macro call

  • No parameters

#macro( d )
<tr><td></td></tr>
#end

#d()
Copy after login
  • Single parameter

#macro( d )
<tr><td>$!bodyContent</td></tr>
#end

#@d()Hello#end
Copy after login
  • Any parameters

Definition

#macro( tablerows $color $somelist )
#foreach( $something in $somelist )
    <tr><td bgcolor=$color>$something</td></tr>
#end
#end
Copy after login

Call

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

    #tablerows( $color $greatlakes )
Copy after login

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>
Copy after login

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}
Copy after login

2. Velocity variable is undefined
Use $!, for example

$!foo
Copy after login

When foo is undefined, the output is blank string.

3. Velocity calling sequence
Velocity in $customer.address, calling sequence:

getaddress()getAddress()get("address")isAddress()
Copy after login

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!

Related labels:
source:php.cn
Statement of this Website
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
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template
About us Disclaimer Sitemap
php.cn:Public welfare online PHP training,Help PHP learners grow quickly!