Velocity入门指南

Velocity简介

Velocity主要目的简化WEB动态页面的开发,能够更加清晰地把VIEW和其他MVC组件区别开。Velocity不但可以用于开发WEB页面,同时也可以用于开发独立运行的应用程序,比如SQL或XML。可以直接支持Turbine Web 应用框架,以及Servlets、Texan等。View和Model通过Context来进行数据关联,将对应的模板渲染成HTML页面。

使用指南

Velocity模板引擎,通过上下文来处理Model和View中的数据信息,模板引擎通过VTL语法来渲染HTML页面。和基本的语言一样,VTL语法中少不了变量和语法两方面的内容。模板文件和通常的html网页没有太多的区别,基本上是在HTML嵌入VTL语法。

注释以及转义

Velocity中代码注释使用##,只能单行注释。

例如:
## 这是一行注释

Velocity中的转义字符”,对于代码中输出指令语句等使用

例如:
"#include("test.txt")

引用类型

引用类型包括了三种基本类型,变量、属性和方法。
变量都是开始的,其对应的属性和方法访问方式和JAVA对象的访问方式是一样的。在Velocity模板中通常可以引用的对象是java.lang.Object对象,在模板引擎中使用变量时,只可以使用属性和对应的方法,针对Java对象的特殊语法,在模板引擎中不可以使用。比如数组的[],只能通过get方法替代。变量通常可以通过context上下文加载,并由模板引擎来处理。在模板中使用!符号时,velocity引擎默认不对空值进行处理。

指令

stop指令

通常用于程序调试,使用#stop指令,告诉模板引擎后面的模板不再执行。

例如:stop.vm
## starting
this is before
## stop processing
#stop
this will not be processed
## end

include指令

include指令用于引入其他的文件,引入的文件将会被当做静态文件来处理。

例如:include.vm
#include("test1.txt")
#include("test2.vm")

parse指令

parse指令和include指令类似,也是用于引入其他的外部文件。不同的是parse引入的文件通常是动态文件,并且parse指令中允许嵌套。

set赋值指令

set指令可以用于创建一个新的实例,或者更新一个已经存在的实例。set指令中也支持基本的数据运算

例如:
#set($username="liujie")
$username
#set($username="new user")
$username
#set($age=100 / 4)

条件判断指令

支持的基本语法#if/#else/#elseif/#end,判断条件也支持<, >, <=, >=, !=, ==,这和Java标准语法是一致的。

foreach循环指令

和java中的语法相同,用于循环执行

例如:
#foreach($item in [1..5])
    $item
#end
#foreach($item in ["one", "two", "three“, "four"])
    $item
#end

该语法中支持数组类型的对象,对应Java中的对象有Collection, Map, Iterator,Enumeration,Listing(如LinkedList)类型。

macro宏定义

提供了一个构建模板代码复用的机制,类似于Java中的函数。

例如:
#macro( sayHi $username)
Hello $username
#end
#sayHi("liujie")

内置变量

sessioin、request、$response

日志

时间: 2024-10-25 17:20:05

Velocity入门指南的相关文章

《Apache Velocity用户指南》官方文档

Quick Start 本项目是 Apache Velocity官方文档的中文翻译版,Velocity类似与JSP,是一种基于Java的模板引擎.它可以在web页面中引用Java代码中定义的数据和对象,而Velocity的作用就是把Web视图和java代码进行组装在一起.本次翻译主要针对对Velocity感兴趣和工作中使用到Velocity的开发人员提供有价值的中文资料,希望能够对大家的工作和学习有所帮助. 由于我也是第一次接触Velocity,还不是很深入,翻译的时候也查看了一些博客以及其他网

WebX入门指南

[说明] 本文围绕WebX的Web框架展开,试图将整个开发中使用的软件栈或者说生态系统串联起来.本文中不讲解原理性的东西,只是讲解各种场景下如何使用WebX相关的技术.入门指南中涉及到的实践指南和原理指南,不会展开,在后续博文中,详细阐述. WebX简介 详细的简介说明见WebX官网.首先看一下WebX的官方介绍: Webx是一个框架,它可用来做下面的事情: 创建一个全功能的Web应用     Webx提供了创建一个Web应用所需要的所有必要功能. 创建一个新的Web框架     Webx允许你

Firebug入门指南

据说,对于网页开发人员来说,Firebug是Firefox浏览器中最好的插件之一. 我最近就在学习怎么使用Firebug,网上找到一篇针对初学者的教程,感觉比较有用,就翻译了出来. ================= Firebug入门指南 作者:Estelle Weyl 原文网址:http://www.evotech.net/blog/2007/06/introduction-to-firebug/ 译者:阮一峰 本文是Firebug的一个概览,并不对它的所有特性进行详尽解释.不过,本文的内容

ajax入门指南(七)

ajax学习入门指南,对ajax初学者会有所帮助.    Prototype框架         页面插入         1.Insertion.Before类                 新建Insertion.Before类的实例,会将指定的HTML添加到指定元素之前,并且与之相邻                 示例:                 <div id="div1">original text</div>                

ajax入门指南(六)

ajax学习入门指南,相信对ajax初学者会有所帮助的.  Prototype框架     枚举对象(Enumerable对象)         1.Enumerable.each(iterator)         each方法的参数是一个JavaScript函数,它可以接受两个参数,它们分别是当前遍历的集合元素和当前遍历元素在集合中的序号         示例:         var arr = [1,2,3,4];         arr.each(            functio

ajax入门指南(五)

ajax学习入门指南,对ajax初学者应该有所帮助. Prototype基础类:        1. Class.create()             示例:                 var myClass = Class.create();       2.  Object.extend(destination,source)             示例:                 var myClass = Class.create();                

ajax入门指南(四)

ajax学习入门指南,对ajax初学者应该有所帮助. Prototype对Ajax的支持     Ajax.Request类     如下代码是一个示例:     <!--客户端:index.htm-->     <script language="javascript" type="text/javascript" src="prototype1.6.js"></script>     <script

ajax入门指南(三)

ajax入门指南,相信对ajax初学者会有所帮助. AJAX的主流框架:       浏览器端框架:       一.Prototype系列:         1.Prototype:http://prototype.conio.net,如果在Web应用中实现对Ajax的支持或者需要扩展一些基本的功能,Prototype是个很好的选择:         2.script.aculo.us:http://script.aculo.us,如果要在Web应用中实现更加在丰富的动态效果,提升用户体验,可

ajax入门指南(二)

ajax入门指南,相信对ajax初学者有所帮助. javascript面向对象编程实现:             1.类的声明:                 function test1(){                     this.p1 = "p1";                     this.p2 = "p2";                     this.f1 = function(){ alert("f1");