Velocity是一个基于java的模板引擎。它允许任何人仅仅简单的使用模板语言来引用由java代码定义的对象。

当Velocity应用于web开发时,界面设计人员可以和java程序开发人员同步开发一个遵循MVC架构的web站点,也就是说,页面设计人员可以只 关注页面的显示效果,而由java程序开发人员关注业务逻辑编码。Velocity将java代码从web页面中分离出来,这样为web站点的长期维护提 供了便利,同时也为我们在JSP和PHP之外又提供了一种可选的方案。

Velocity基本语法和使用:

1. "#"用来标识Velocity的脚本语句。

如:#set、#if 、#else、#foreach、#end、#include、#parse、#macro等。

2. "$"用来标识一个对象(或理解为PHP的变量)

如:$i、$user等。

3. "{}"用来明确标识Velocity变量,和普通模版字符串区分开来;

如:${user}‘s age 可以显示为 riqi's age。

4. "!"强制把不存在的变量显示为空白。

如:$!msg,假如msg对象为空,则模版中不显示该变量;如果缺少"!",则显示$msg字符串,这是我们不想要的结果。

5. 变量的定义和赋值。不需要指定变量的类型,类似弱类型语言PHP可以随意指定,在赋值后自动判定变量的类型,如:

#set($username="riqi") ##设置用户名
#set($age=26) ##设置年龄

6. 数组循环

#foreach ($user in $users)
$!{user} $!{velocityCount} <br />
#end

$users可以是Vector、Hashtable或者Array,Velocity提供了得到循环次数的值:$velocityCount。

7. 语句注释

单行注释:## 单行注释代码

多行注释:#* 多行注释代码 *#

8. 模版支持关系和逻辑操作符运算,如:&&、||、! 等

9. 宏定义:#macro ,类似PHP声明一个函数,其中有函数名称和参数列表。先定义再调用。

10. 终止命令:#stop,类似PHP的exit(); 停止执行模板引擎并返回。

11. 引入公共模版文件:#include与#parse,它们的差异是:

(1) 与#include不同的是,#parse只能指定单个对象。而#include可以有多个

如果您需要引入多个文件,可以用逗号分隔就行:

#include ("one.gif", "two.txt", "three.htm" )

在括号内可以是文件名,但是更多的时候是使用变量的:

#include ( “greetings.txt”, $seasonalstock )

(2) #include被引入文件的内容将不会通过模板引擎解析;

而#parse引入的文件内容Velocity将解析其中的velocity语法并移交给模板,意思就是说相当与把引入的文件copy到文件中。

#parse是可以递归调用的。

12. 转义字符'\'.

这个和其它语言没有差异,假如:$user="riqi"; 那么,\$user 表示输出 $user字符串,\\$user表示输出\riqi。

13. Velocity内置了一部分java对象 如:$request、$response、$session等,在vm模版里可以直接调用。

------------------------------------------------------------------------------------

细节整理:

1. Velocity判断某个变量是否为空的方式:

#if($!变量名)……#else……#end

或者:

#if("" == $!varName)……#else……#end

Velocity模版引擎使用总结的更多相关文章

  1. Spring整合Velocity模版引擎

    1. 首先通过pom.xml自动加载velocity扩展包到工程: <dependency> <groupId>velocity</groupId> <art ...

  2. framMaker、Velocity模版引擎

    1.一种模板文件,可以自动加载数据到模板里面展现. 类似:Velocity 2.使用场景 1.web开发模式 WEB-INF/view/vm 在互联网公司的开发都是基于vm的开发,其次就是使用JS的框 ...

  3. Java模版引擎:jsp、freemarker、velocity区别

    在java领域,表现层技术主要有三种:jsp.freemarker.velocity. jsp是大家最熟悉的技术优点:1.功能强大,可以写java代码2.支持jsp标签(jsp tag)3.支持表达式 ...

  4. Velocity模板引擎入门

    类似于PHP中的Smarty,Velocity是一个基于Java的模板引擎(template engine).它允许任何人仅仅简单的使用模板语言(template language)来引用由java代 ...

  5. 模版引擎(NVelocity)开发

    在net中用模版开发,在handler中用到了大量的html代码.为解决这个问题,我可以采用模版引擎(NVelocity)进行开发.1.首先需要将NVelocity.dll文件放入项目,其次引用.2. ...

  6. Spring Boot 集成 thymeleaf 模版引擎

    Spring Boot 建议使用 HTML 来完成动态页面.Spring Boot 提供了大量的模版引擎,包括 Thymeleaf.FreeMarker.Velocity等. Spring Boot ...

  7. Velocity模板引擎介绍

    整理下Velocity使用方法,整理比较详细用例 1 Velocity基础语法 1.1 用户和开发人员参考文档 http://velocity.apache.org/engine/releases/v ...

  8. Java安全之Velocity模版注入

    Java安全之Velocity模版注入 Apache Velocity Apache Velocity是一个基于Java的模板引擎,它提供了一个模板语言去引用由Java代码定义的对象.它允许web 页 ...

  9. 构建自己的PHP框架--构建模版引擎(1)

    前段时间太忙,导致好久都没有更新博客了,今天抽出点时间来写一篇. 其实这个系列的博客很久没有更新了,之前想好好规划一下,再继续写,然后就放下了,今天再捡起来继续更新. 今天我们来说一下,如何构建自己的 ...

随机推荐

  1. Destroy reall destroy ?!

    最近做战斗逻辑的时候发现一个问题 测试脚本mTest: public class mTest : MonoBehaviour { public mTest2 tmp2; void OnGUI() { ...

  2. Vue 过滤器filters

    1.示例代码 采用vue单文件组件,使用moment插件格式化日期 <template> <div> <h1>{{date | dateFormat}}</h ...

  3. MongoDB笔记(一):MongoDB介绍及Windows下安装

    一.前言 MongoDB火了也蛮久了,关于简介看看这里吧.项目中一直没用上,最近闲的慌就自己学了下,顺便记录下以便今后复习. 本系列是基于MongoDB 2.4.8 windows 64位讲解,后面的 ...

  4. Atitit.js this错误指向window的解决方案

    Atitit.js this错误指向window的解决方案 1.1. 出现地点and解决之道1 1.2. call,apply和bind这三个方法2 1.2.1. Function.prototype ...

  5. div横向排列

    在网页布局中,常常有几个div横向排列的需求,此时,可以采用浮动的方式: 1.左右浮动: <div class="main"> <div class=" ...

  6. Restore IP Addresses -- LeetCode

    原题链接: http://oj.leetcode.com/problems/restore-ip-addresses/  这道题的解法很接近于NP问题.也是採用递归的解法. 基本思路就是取出一个合法的 ...

  7. centos7下安装mysql5.7和jdk 1.8

    安装mysql5.7 具体安装过程可参见官网:A Quick Guide to Using the MySQL Yum Repository 进入/usr/local/src文件夹. cd /usr/ ...

  8. javascript中实现sleep函数

    function sleep(d){ for(var t = Date.now();Date.now() - t <= d;);}

  9. java中过滤四字节字符

    private static final String FOUR_BYTE_FILTER = "[\\ud800\\udc00-\\udbff\\udfff\\ud800-\\udfff]& ...

  10. Java Resource路径小结

    首先一点很重要,Java中不存在标准的相对路径,各种相对路径取资源的方式都是基于某种规则转化为绝对路劲 然后一点也很重要,绝对不要直接使用绝对路径,否则死得很难看 基于以上两点,总结Resource路 ...