一、jar包
现在越来越多的项目开始使用Velocity作为view,velocity的一些jar包如下:
1、velocity-1.5.jar 包含了veloctiy运行时需要的类
2、velocity-tools-1.4.jar 包含了velocity的视图控制和系统工具类
3、velocity-dvsl-1.0.jar 可选的,封转了dvsl的类
4、commons-collections-xxx.jar 扩展了java.util.map的一些集合类
5、commons-logging-xxx.jar 日志输出类
6、commons-lang-xxx.jar 扩展了java.lang的类
7、commons-digester-xxx.jar 用于处理xml转换到对象的工具类
8、commons-beanutils-xxx.jar 对bean操作的一些类
二、语法
1、变量的定义、赋值与使用规则:赋值的左边必须是一个变量($name)或属性引用($member.Sex),右值为以下六种类型之一:且如果右值为null,则不进行赋值操作,即左值还是保留以前的值;
变量引用:#set($member.Sex=$sex)
字面字符串:#set($username="hzd")
属性引用:#set($color=$ball.Color)
变量引用:#set($member.Age=$ager.sum($age/123/...))
字面数字:#set($money=123456)
数组列表:#set($arr=["not",$m,"xxxx"])
velocity模板中未被定义的变量将被认为是一个字符串:
#set($name="hzd")
$newname=$name,则输出为$newname=hzd
velocity模板中不会将reference解释为对象的实例变量:
如:$foo.Name将被解释为foo对象的getName()方法,而不是foo对象的Name实例变量,
$data.Request.ServerName等同于$data.getRequest.getServerName()
2、遍历循环规则:语法#foreach ...#end,$velocityCount为当前循环的索引(可以通过在velocity配置文件中更改该名称).
循环数组: #foreach($item in ["one","two","three"]) $item #end ,将输出one two three
循环List:#foreach($item in $memberList) $item.name #end,item代表列表中的对象,如果item为值类型(int等),则可以直接使用$item输出值,如果为引用类型(String,User,...),则可以使用$item.name引用实例变量或$item.xxx()调用对象的方法
循环Map:#foreach($key in $memberMap.keySet() ) key:$key;value:$memberMap.get($key) #end
3、条件:使用#if #elseif #else #end 指令可以帮助决定程序的执行流程,如果$foo是boolean,则$foo要为true,否则,$foo不为null
判断对象是否为null的方法:
(1)、#if($member),不为空;#if(!$member),为空;
(2)、#ifnull() 、#ifnotnull():如,ifnull ($foo),要使用这个特性必须在velocity.properties文件中加入:
userdirective = org.apache.velocity.tools.generic.directive.Ifnulluserdirective = org.apache.velocity.tools.generic.directive.Ifnotnull(3)、使用null工具判断:#if($null.isNull($foo))注意这种方式特别有用,尤其你在需要这个判断作为一个判断字句时,比如我要你判断一个集合为null或为空时只能使用这种方式了: $if ($null.isNull($mycoll) || $mycoll.size()==0)#if指令中可以使用的关系和逻辑运算符包括:<,<=,==,>=,>,&&,||,!4、导入指令:作用是导入本地文件到#include或$parse指令定义的地方,出于安全考虑,导入的文件应该放在TEMPLATE_ROOT目录下。#include:导入的文件内容不会被模板引擎解析,一次可以导入多个文件,文件名以逗号分隔,并且通常使用变量引用来代替文件名,如:#include("test.txt","home.txt");#parse:允许导入一个包含VTL的本地文件,并由模板引擎进行解析,例如:#parse("test.vm"),模板引擎会解析'test.vm'中的VTL语句5、宏指令:#macro作用相当于编程语言中的函数,它允许定义一段重复使用的VTL,默认情况下,宏保存在VM_global_library.vm文件中,一个宏可以有0个或多个参数。如:#macro(showList) --定义一个名为showList的且参数个数为0的Velocimacro,可以使用#showList()来进行调用。 #if($treelist) #foreach($item in $treelist)....#end #end #end带参数的宏:同样可以使用#showList($treelist)来调用 #macro (showList $val) #if($val) #foreach($item in $val)...#end #end #end6、停止指令:#stop指令用于停止模板引擎的执行并返回,这对debug很有帮助。 转载:http://blog.163.com/hzd_love/blog/static/131999881201011188161721/
分享到:
相关推荐
### Velocity学习笔记精要 **一、Velocity简介与特点** Velocity是一种基于Java的模板引擎,用于将静态数据和动态内容结合在一起,生成最终的HTML、XML或其他格式的文档。其最大的特点是性能高、易于理解和使用,...
Velocity是Apache软件基金会的一个开源项目,它是一款快速、强大且易用的模板引擎,用于生成动态Web内容。在Java世界中,Velocity常被用来作为MVC框架中的视图层技术,与Struts2等框架集成,以实现更灵活的页面渲染...
根据给定的文件信息,以下是对Struts2学习笔记中涉及的关键知识点的详细解析: ### Struts2框架概览 #### MVC模式的理解与演进 Struts2是基于MVC(Model-View-Controller)模式设计的一种Java Web开发框架。在MVC...
本笔记基于林子雨老师在MOOC上的《大数据技术原理》课程,旨在为IT从业者和大学生提供一个全面了解大数据的基础框架。 首先,我们要认识到大数据的发展背景。随着互联网的普及,以及物联网、社交媒体、移动设备等...
这篇学习笔记将引导我们深入了解 SpringBoot 的基本用法,包括项目的创建、返回视图、数据库交互、前端与后端数据传递、日志管理和安全控制等方面。 1. **新建项目**: 创建 SpringBoot 项目通常是通过 Maven 或 ...
张龙圣思园的Struts2学习笔记,无疑为Java开发者提供了一份宝贵的参考资料,它可能涵盖了Struts2的基础概念、核心组件、配置方式以及实战技巧。 首先,让我们深入了解Struts2的核心特性。Struts2是MVC(Model-View-...
Java私人学习笔记主要涵盖了Java编程语言以及与其相关的几个著名框架——Spring、Struts2和Hibernate,还有前端开发中常用的JavaScript。这些技术在IT行业中的应用广泛,是许多企业级应用开发的基础。以下是对这些...
尚学堂的Spring学习笔记.doc可能包含对这些特性的详细解释、实例代码以及如何在实际项目中应用的指导,对于想要深入理解Spring 3.0的开发者来说是一份宝贵的参考资料。通过阅读这份笔记,你可以系统地学习Spring 3.0...
"Hadoop学习笔记整理" 本篇笔记对Hadoop进行了系统的介绍和总结,从大数据的基本流程到Hadoop的发展史、特性、集群整体概述、配置文件、HDFS分布式文件系统等方面都进行了详细的讲解。 一、大数据分析的基本流程 ...
这个入门教程和学习笔记是针对初学者设计的,帮助他们快速理解和掌握Struts2的核心概念和实践操作。 Struts2的学习首先需要理解MVC模式。MVC模式将应用逻辑分为三个部分:模型负责业务逻辑,视图负责展示数据,而...
相比于其他模板引擎如Velocity,Freemaker支持更为灵活的过程调用、递归处理以及闭包回调等功能,使得开发者能够更加便捷地实现复杂的业务逻辑。 #### 二、基本语法 Freemaker使用特定的标签来定义其语法结构,这些...
本学习笔记将深入探讨Struts2的核心概念、工作原理以及如何在实际开发中有效利用它。 **1. MVC模式与Struts2** MVC模式是一种软件设计模式,它将业务逻辑(Model)、用户界面(View)和数据控制(Controller)分离...
### Struts2 学习重点知识点总结 #### 一、Struts2 概念与架构 **1.1 Struts2 简介** - **定义**:Struts2 是 Apache 组织提供的一个基于 MVC 架构模式的开源 Web 应用框架。 - **核心**:Struts2 的核心其实是 ...