1.velocity是一门基于Java语言的视图表现层模板引擎,它可以取代jsp,比jsp更高效。

2.velocity变量的定义与引用

(1).定义一个变量:#set ($a = "velocity"),变量名为 $a

(2).引用上面定义的变量:Hello $a

3.velocity中!号的含义及使用

(1).#if ($!msg) hello #end:若引用值 $msg 不为空则输出 hello,否则什么都不输出。

4.velocity中的循环语句语法

#foreach ($stu in $slist)

  ${stu.name}

  ${stu.age}

#end

以上$slist是从Java代码中引用的对象,$stu是$slist中的一个元素。

5.velocity中的注释

(1).单行注释:##注释内容

(2).多行注释:

#*

注释内容

*#

(3).文档格式:

#**

This is a VTL comment block and
may be used to store such information
as the document author and versioning
information:
@version 5
@author

*#

6.在VTL中有三种类型的references:变量(variables)、属性(properties)、方法(methods)。

${mudSlinger} 变量
${customer.Address} 属性
${purchase.getTotal()} 方法

7.注意:VTL中未被定义的变量将被认为是一个字符串,所以以下例子:

#set( $foo = “gibbous” )
$moon = $foo
的输出结果是:
$moon = gibbous

8.注意VTL中不会将reference解释为对象的实例变量。例如:$foo.Name将被解释

为Foo对象的getName()方法,而不是Foo对象的Name实例变量。

9.#set ( $monkey.Say = [“Not”, $my, “fault”] )

例子的取值方法为:$monkey.Say.get(0)

10.#if ( $foo )

<strong>Velocity!</strong>
#end
上例中的条件语句将在以下两种条件下成立:
$foo是一个boolean型的变量,且它的值为true
$foo变量的值不为null

11.if else语句例子:

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

12.velocity的逻辑运算符:

Velocity有AND、OR和NOT逻辑运算符。下面是一些例子:
## logical AND
#if( $foo && $bar )
<strong> This AND that </strong>
#end

## logical OR
#if ( $foo || $bar )
<strong>This OR That </strong>
#end

##logical NOT
#if ( !$foo )
<strong> NOT that </strong>
#end

13.Velocity还特别提供了得到循环次数的方法,以便你可以像下面这样作:

<table>
#foreach ( $customer in $customerList )
<tr><td>$velocityCount</td><td>$customer.Name</td></tr>
#end
</table>
$velocityCount变量的名字是Velocity默认的名字,你也可以通过修改velocity.properties文件来改变它。

默认情况下,计数从“1”开始,但是你可以在velocity.properties设置它是从“1”还是从“0”开始。

14.include 

#include script element允许模板设计者引入本地文件。被引入文件的内容将不会通过模板引擎被render。
为了安全的原因,被引入的本地文件只能在TEMPLATE_ROOT目录下。
#inclued ( “one.txt” )
如果您需要引入多个文件,可以用逗号分隔就行:
#include ( “one.gif”, “two.txt”, “three.htm” )
在括号内可以是文件名,但是更多的时候是使用变量的:
#inclue ( “greetings.txt”, $seasonalstock )

15.parse 

#parse script element允许模板设计者一个包含VTL的本地文件。Velocity将解析其中的VTL并render模板。
#parse( “me.vm” )
就像#include,#parse接受一个变量而不是一个模板。任何由#parse指向的模板都必须包含在
TEMPLATE_ROOT目录下。与#include不同的是,#parse只能指定单个对象。

16.#stop script element允许模板设计者停止执行模板引擎并返回。把它应用于debug是很有帮助的。 

17.#macro script element允许模板设计者定义一段可重用的VTL template。例如: 

#macro ( d )
<tr><td></td></tr>
#end
在上面的例子中Velocimacro被定义为d,然后你就可以在任何VTL directive中以如下方式调用它:
#d()

18.其他特性和杂项 

math 在模板中可以使用Velocity内建的算术函数,如:加、减、乘、除
#set ( $foo = $bar + 3 )
#set ( $foo = $bar - 4 )
#set ( $foo = $bar * 6 )
#set ( $foo = $bar / 2 )
当执行除法时将返回一个Integer类型的结果。而余数你可以使用%来得到:
#set ( $foo = $bar % 5 )

19.开发人员最常问的问题是我如何作字符拼接?在java中是使用“+”号来完成的。 

在VTL里要想实现同样的功能你只需要将需要联合的reference放到一起就行了。例如:
#set ( $size = “Big” )
#set ( $name = “Ben” )
The clock is $size$name.
输出结果将是:The clock is BigBen.。更有趣的情况是:
#set ( $size = “Big” )
#set ( $name = “Ben” )
#set ( $clokc = “$size$name” )
The clock is $clock.
上例也会得到同样的结果。

转载于:https://www.cnblogs.com/itxinke/p/7211479.html

VTL(Velocity Templates Language,即Velocity模板语言)初识语法总结相关推荐

  1. jango模板语言初识

    一.Django框架简介 1.MVC框架 MVC,全名是Model View Controller,是软件工程中的一种软件架构模式,把软件系统分为三个基本部分:模型(Model).视图(View)和控 ...

  2. python语言的格式框架_django框架模板语言使用方法详解

    本文实例讲述了django框架模板语言使用方法.分享给大家供大家参考,具体如下: 模板功能 作用:生成html界面内容,模版致力于界面如何显示,而不是程序逻辑.模板不仅仅是一个html文件,还包括了页 ...

  3. Velocity模板语言VTL

    2019独角兽企业重金招聘Python工程师标准>>> Velocity是Apache软件组织提供的一想开源源码项目,可前往Apache Velocity Project下载.它是基 ...

  4. velocity 模板语言(VTL)

    一 是什么 velocity是一种让web设计者易于掌握和使用的模板语言,主要目的是简化web动态页面的开发.为了获取这种语言的支持,你需要java基础类集合,才能在MVC的model模型和view视 ...

  5. 模板语言(VTL):入门

    VTL使用references来在web site内嵌套动态内容,一个变量就是一种类型的reference. 变量是某种类型的refreence,它可以指向java代码中的定义,或者从当前页面内定义的 ...

  6. velocity模板_使用Velocity进行客户端和服务器端模板

    以标准表示或交换格式(例如HTML和XML)操作和转换文本数据是每个软件开发人员都参与的频繁且通常乏味的活动. 模板引擎可以通过在模板中维护输出的静态部分,同时动态生成和定位变化部分来促进此过程. V ...

  7. 使用 Velocity 实现客户端和服务器端模板

    灵活的模板引擎为 JSP 技术提供一种没有遗产负担的选择   文档选项 jsp> '); //-->   将此页作为电子邮件发送     将此页作为电子邮件发送 最新推荐   Java 应 ...

  8. velocity模板引擎-vm语法整理

    velocity模板引擎-vm语法整理 模板引擎我目前接触过两次, 第一次是在前后端还未分离时,考虑到部分页面数据比较固定,一定时间内不会变动,这样每次从后台加载数据渲染页面明显会消耗性能以及资源浪费 ...

  9. java velocity模版_使用velocity模板

    Apache Velocity开发者指南–导读 原文链接   译者:小村长 Velocity–导读 本项目是 Apache Velocity官方文档的中文翻译版,Velocity类似与Jsp,是一种基 ...

最新文章

  1. Linux之文本处理
  2. Android Kotlin协程和Retrofit结合使用
  3. maven的profile详解
  4. ios 短信验证码自动填充时总是被复制两遍
  5. swfupload 上传报 security error # 2049 (security) 安全错误问题
  6. MPLS-TP OAM各个层次
  7. c++11 多线程依次打印ABC
  8. SpringCloud整合Hmily实现TCC分布式事务案例详解
  9. 在北京如何租房比较好?
  10. html 发送ping帧,HTML5:ping属性之死亡ping与隐私追踪
  11. 小米手机电池恢复代码_小米手机隐藏技巧,你真的会用吗?别再浪费如此强大的功能了...
  12. spring configuration注解原理
  13. word打开老是配置进度_打开word2010总是出现配置进度怎么办_打开word2010出现配置进度的解决方法-系统城...
  14. glTexSubImage2D的使用详解
  15. 信创操作系统--统信UOS桌面版(使用终端:bash、tty、基本shell操作)
  16. 机器学习:决策树的预剪枝和后剪枝
  17. 不用做实验也可以轻松找到癌症组织特异性基因
  18. 华为OJ——删除字符串中出现次数最少的
  19. Browser speed discrepancies
  20. 〖产品思维训练白宝书 - 产品思维认知篇⑨〗- 像 产品经理 一样去思考解决问题

热门文章

  1. 【linux】监控和管理linux进程
  2. matlab中求立方根,matlab实现求复数立方根的函数代码怎么写
  3. seo刷流量软件有哪些|比较好的有什么呢|seo排名软件
  4. [清风数学建模]层次分析法(AHP)笔记及代码实现
  5. Cover Letter常用范式和模版
  6. 2019展望|二手车电商:停不下来的混战,但是大家都要准备过冬了
  7. Launch Failed,Binary not found
  8. VS2008,C++,镜子反射 光线反射游戏
  9. 我叫mt4服务器维护时间,我叫MT4维护更新公告 维护更新内容及时间
  10. ruby-to_ary