Rumah > Java > javaTutorial > teks badan

Velocity实例教程分享

零下一度
Lepaskan: 2017-07-20 16:47:50
asal
2198 orang telah melayarinya

1. Velocity 是什么?

Velocity 是一个基于Java的模版引擎,它提供模版语言用于引用Java代码定义的对象。

2. Velocity 能做什么?

  1. Velocity能创建HTML页面,并预留占位符。(最基本用途)

  2. Velocity能基于模板生成Java,SQL源代码。(没见过)

  3. 自动生成电子邮件。(没见过)

  4. 读取XML,并转换成需要的文档格式,通常是HTML。(没见过)

3. Velocity示例

Velocity 注解

单行 ##
多行 #*    *#
代码块注释(信息) ##*    *#

Velocity 变量

定义:

#set( $foo = "Velocity" )
Salin selepas log masuk

使用:

$foo
${foo}
Salin selepas log masuk

Velocity 集合

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

Velocity 条件判断

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

Velocity 循环

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

Velocity 引用文件

#include( "one.vm" ) one.vm 不解析。
#parse( "me.vm" ) me.vm 解析。
Salin selepas log masuk

Velocity 定义代码块

#define( $block )
Hello $who
#end

#set( $who = &#39;World!&#39; )
$block
Salin selepas log masuk

Velocity 宏调用

  • 无参

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

#d()
Salin selepas log masuk
  • 单参

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

#@d()Hello#end
Salin selepas log masuk
  • 任意参数

定义

#macro( tablerows $color $somelist )
#foreach( $something in $somelist )
    <tr><td bgcolor=$color>$something</td></tr>
#end
#end
Salin selepas log masuk

调用

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

    #tablerows( $color $greatlakes )
Salin selepas log masuk

输出

<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>
Salin selepas log masuk

Velocity 填坑

1. 各种写法

$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}
Salin selepas log masuk

2. Velocity 变量未定义
使用 $!,例

$!foo
Salin selepas log masuk

当 foo 未定义,输出空白字符串。

3. Velocity 调用顺序
Velocity中$customer.address,调用顺序:

getaddress()getAddress()get("address")isAddress()
Salin selepas log masuk

4. #if ($foo)
两种情况都返回true:
(1)$foo是一个 boolean 类型,且为 true。
(2)$foo不是 0,也不是 null。

5. #if ($foo == $bar)
因为Velocity变量最终都作为字符串输出,所以Velocity会自动调用 .toString() 将变量转换成字符串。
所以,$foo 和 $bar 都当成字符串进行比较。即使Java代码中类型不同,也有可能返回true。

Velocity 严格模式

Velocity 1.6引入严格引用模式,通过设置Velocity配置属性“runtime.references.strict”为true激活。
当遇到没有定义或者存在歧义的情况Velocity将抛出异常。

希望这篇文章对你有帮助。by iamtjcn

Atas ialah kandungan terperinci Velocity实例教程分享. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Label berkaitan:
sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan