利用 Velocity 模板引擎制作网站
来源:互联网 发布:windows loader v2.4 编辑:程序博客网 时间:2024/05/29 06:47
似乎所有语言教学的开头都是采用 HelloWorld 来作为第一个程序的示例。这里也不例外。
任何 Velocity 的应用都包括两个方面:
第一是: 模板制作,在我们这个例子中就是 hellosite.vm:
它的内容如下(虽然不是以 HTML 为主,但是这很容易改成一个 html 的页面)
第二是 Java 程序部分:
下面是 Java 代码
将两个文件放在同一个目录下,编译运行,结果是:
Hello Eiffel Qiu! Welcome to http://www.hao123.comworld
为了保证运行顺利,请从 Velocity 的网站 http://jakarta.apache.org/velocity/上下载 Velocity
的运行包,将其中的 Velocity Jar 包的路径放在系统的 Classpath 中,这样就可以编译和运
行以上的程序了。
这个程序很简单,但是它能让你清楚的了解 Velocity 的基本工作原理。程序中其他部分基
本上很固定,最主要的部分在以下代码
这里 Velocity 获取模板文件,得到模板引用
这里,初始化环境,并将数据放入环境
其他代码比较固定,但是也非常重要,但是对于每个应用来说写法都很相同:
这是初始化 Velocity 模板引擎
这是用来将环境变量和输出部分结合。
记住,这在将来的 servlet 应用中会有所区别,因为网页输出并不和命令行输出相同,如果
用于网页输出,将并不通过 System.out 输出。
这会在以后的教程中给大家解释的。
那让我来总结一下 Velocity 真正的工作原理:
Velocity 解决了如何在 Servlet 和 网页之间传递数据的问题,当然这种传输数据的机制是
在 MVC 模式上进行的,也就是View 和 Modle , Controller 之间相互独立工作,一方的修
改不影响其他方变动,他们之间是通过环境变量(Context)来实现的,当然双方网页制作
一方和后台程序一方要相互约定好对所传递变量的命名约定,比如上个程序例子中的 site,
name 变量,它们在网页上就是 $name ,$site 。 这样只要双方约定好了变量名字,那么双
方就可以独立工作了。 无论页面如何变化,只要变量名不变,那么后台程序就无需改动,
前台网页也可以任意由网页制作人员修改。这就是 Velocity 的工作原理。
你会发现简单变量名通常无法满足网页制作显示数据的需要,比如我们经常会循环显示一些
数据集,或者是根据一些数据的值来决定如何显示下一步的数据, Velocity 同样提供了循
环,判断的简单语法以满足网页制作的需要。Velocity 提供了一个简单的模板语言以供前端
网页制作人员使用,这个模板语言足够简单(大部分懂得 javascript 的人就可以很快掌握,
其实它比 javascript 要简单的多),当然这种简单是刻意的,因为它不需要它什么都能做,
View 层其实不应该包含更多的逻辑,Velocity 的简单模板语法可以满足你所有对页面显示
逻辑的需要,这通常已经足够了,这里不会发生象 jsp 那样因为一个无限循环语句而毁掉
系统的情况,jsp 能做很多事情,Sun 在制定 Jsp 1.0 标准的时候,没有及时的限定程序员
在 jsp 插入代码逻辑,使得早期的jsp 代码更象是 php 代码,它虽然强大,但是对显示层
逻辑来说,并不必要,而且会使 MVC 三层的逻辑结构发生混淆。
任何 Velocity 的应用都包括两个方面:
第一是: 模板制作,在我们这个例子中就是 hellosite.vm:
它的内容如下(虽然不是以 HTML 为主,但是这很容易改成一个 html 的页面)
Hello $name! Welcome to $site world!
第二是 Java 程序部分:
下面是 Java 代码
import java.io.StringWriter; import org.apache.velocity.app.VelocityEngine; import org.apache.velocity.Template; import org.apache.velocity.VelocityContext; public class HelloWorld { public static void main( String[] args ) throws Exception { /* first, get and initialize an engine */ VelocityEngine ve = new VelocityEngine(); ve.init(); /* next, get the Template */ Template t = ve.getTemplate( "hellosite.vm" ); /* create a context and add data */ VelocityContext context = new VelocityContext(); context.put("name", "Eiffel Qiu"); context.put("site", "http://www.hao123.com"); /* now render the template into a StringWriter */ StringWriter writer = new StringWriter(); t.merge( context, writer ); /* show the World */ System.out.println( writer.toString() ); } }
将两个文件放在同一个目录下,编译运行,结果是:
Hello Eiffel Qiu! Welcome to http://www.hao123.comworld
为了保证运行顺利,请从 Velocity 的网站 http://jakarta.apache.org/velocity/上下载 Velocity
的运行包,将其中的 Velocity Jar 包的路径放在系统的 Classpath 中,这样就可以编译和运
行以上的程序了。
这个程序很简单,但是它能让你清楚的了解 Velocity 的基本工作原理。程序中其他部分基
本上很固定,最主要的部分在以下代码
这里 Velocity 获取模板文件,得到模板引用
/* next, get the Template */ Template t = ve.getTemplate( "hellosite.vm" );
这里,初始化环境,并将数据放入环境
/* create a context and add data */ VelocityContext context = new VelocityContext(); context.put("name", "Eiffel Qiu"); context.put("site", "http://www.hao123.com");
其他代码比较固定,但是也非常重要,但是对于每个应用来说写法都很相同:
这是初始化 Velocity 模板引擎
/* first, get and initialize an engine */ VelocityEngine ve = new VelocityEngine(); ve.init();
这是用来将环境变量和输出部分结合。
StringWriter writer = new StringWriter(); t.merge( context, writer ); /* show the World */ System.out.println( writer.toString() );
记住,这在将来的 servlet 应用中会有所区别,因为网页输出并不和命令行输出相同,如果
用于网页输出,将并不通过 System.out 输出。
这会在以后的教程中给大家解释的。
那让我来总结一下 Velocity 真正的工作原理:
Velocity 解决了如何在 Servlet 和 网页之间传递数据的问题,当然这种传输数据的机制是
在 MVC 模式上进行的,也就是View 和 Modle , Controller 之间相互独立工作,一方的修
改不影响其他方变动,他们之间是通过环境变量(Context)来实现的,当然双方网页制作
一方和后台程序一方要相互约定好对所传递变量的命名约定,比如上个程序例子中的 site,
name 变量,它们在网页上就是 $name ,$site 。 这样只要双方约定好了变量名字,那么双
方就可以独立工作了。 无论页面如何变化,只要变量名不变,那么后台程序就无需改动,
前台网页也可以任意由网页制作人员修改。这就是 Velocity 的工作原理。
你会发现简单变量名通常无法满足网页制作显示数据的需要,比如我们经常会循环显示一些
数据集,或者是根据一些数据的值来决定如何显示下一步的数据, Velocity 同样提供了循
环,判断的简单语法以满足网页制作的需要。Velocity 提供了一个简单的模板语言以供前端
网页制作人员使用,这个模板语言足够简单(大部分懂得 javascript 的人就可以很快掌握,
其实它比 javascript 要简单的多),当然这种简单是刻意的,因为它不需要它什么都能做,
View 层其实不应该包含更多的逻辑,Velocity 的简单模板语法可以满足你所有对页面显示
逻辑的需要,这通常已经足够了,这里不会发生象 jsp 那样因为一个无限循环语句而毁掉
系统的情况,jsp 能做很多事情,Sun 在制定 Jsp 1.0 标准的时候,没有及时的限定程序员
在 jsp 插入代码逻辑,使得早期的jsp 代码更象是 php 代码,它虽然强大,但是对显示层
逻辑来说,并不必要,而且会使 MVC 三层的逻辑结构发生混淆。
- 利用 Velocity 模板引擎制作网站
- 利用 Velocity 模板引擎制作网站
- 如何使用 velocity 模板引擎开发网站
- 如何使用 velocity 模板引擎开发网站
- 使用Velocity 模板引擎开发网站
- 如何使用 velocity 模板引擎开发网站
- velocity模板引擎简介
- velocity 模板引擎
- Velocity模板引擎
- 【工具】模板引擎 Velocity
- Velocity模板引擎入门
- 模板引擎 Velocity
- Velocity 模板引擎介绍
- 模板引擎 Velocity
- velocity模板引擎处理
- Java模板引擎---Velocity
- Velocity模板引擎
- Velocity 模板引擎介绍
- why (iphdr->ihl)*4 or (iphdr->ihl)<<2?
- 从网址字符串取得参数值的函数(C语言)
- shp文件--大地平面坐标转为经纬度坐标
- 网页自动跳转代码
- BW自定义数据源之数据建模
- 利用 Velocity 模板引擎制作网站
- mysql查询数据库,表名和字段
- wxWidgets 类列表
- 10.1工作总结
- 128*64点阵图形液晶显示屏程序设计教程
- 基于visual c++之windows核心编程代码分析(9)实现Windows服务并安装,控制
- centos 下无法进行有线上网的解决方法
- 连连看 代码的实现
- 华南理工大学研究生人工智能期末考试题纲整理文档