Jakarta Velocity 起步

简介:
 
Velocity 简介
Velocity是一个基于java的模板引擎(template engine)。它允许任何人仅仅简单的使用模板语言(template language)来引用由java代码定义的对象。 当Velocity应用于web开发时,界面设计人员可以和java程序开发人员同步开发一个遵循MVC架构的web站点,也就是说,页面设计人员可以只关注页面的显示效果,而由java程序开发人员关注业务逻辑编码。Velocity将java代码从web页面中分离出来,这样为web站点的长期维护提供了便利,同时也为我们在JSP和PHP之外又提供了一种可选的方案。 Velocity的能力远不止web站点开发这个领域,例如,它可以从模板(template)产生SQL和PostScript、XML,它也可以被当作一个独立工具来产生源代码和报告,或者作为其他系统的集成组件使用。Velocity也可以为Turbine web开发架构提供模板服务(template service)。Velocity+Turbine提供一个模板服务的方式允许一个web应用以一个真正的MVC模型进行开发。(以上简介内容很贴切,来自互联网)
 
Velocity是很多模板工具的核心,这是我研究此的目的。
 
下面给出一个最基本的例子,本例程依赖的核心包:
velocity-1.5.jar
velocity-dep-1.5.jar
 
开发Velocity的开发流程如下:
 
一、定义Bean、用来传递参数。
 
package simple; 
/** 
* Created by IntelliJ IDEA.<p> 
* User: leizhimin<p> 
* Date: 2008-8-16 23:46:03<p> 
* 普通的JavaBean,用来携带模板参数 
*/
 
public  class Person { 
     private String name; 
     private String sex; 
     private  int age; 

     public Person(String name, String sex,  int age) { 
         this.name = name; 
         this.sex = sex; 
         this.age = age; 
    } 

     public String getName() { 
         return name; 
    } 

     public  void setName(String name) { 
         this.name = name; 
    } 

     public String getSex() { 
         return sex; 
    } 

     public  void setSex(String sex) { 
         this.sex = sex; 
    } 

     public  int getAge() { 
         return age; 
    } 

     public  void setAge( int age) { 
         this.age = age; 
    } 
}
 
二、定义模板
 
person.vm
<personlist>
    <person>
        <name>$person.name</name>
        <sex>$person.sex</sex>
        <sex>$person.age</sex>
    </person>
</personlist>
 
 
三、测试
package simple; 

import org.apache.velocity.VelocityContext; 

import org.apache.velocity.app.Velocity; 

import java.io.*; 

/** 
* Created by IntelliJ IDEA.<p> 
* User: leizhimin<p> 
* Date: 2008-8-16 23:37:43<p> 
* 通过一个简单的示例演示Velocity的工作原理和流程 
*/
 
public  class SimpleTest { 
     public  static  void main(String[] args)  throws Exception { 
        test(); 
    } 

     public  static  void test()  throws Exception { 
        Person p =  new Person( "zhangsan""men", 22); 

         // 初始化Velocity引擎,init对引擎VelocityEngine配置了一组默认的参数 
         // VelocityEngine是单例模式,线程安全 
        Velocity.init(); 

         // 创建一个上下文环境,此实例是非线程安全的 
        VelocityContext context =  new VelocityContext(); 
         // 用对象填充context 
        context.put( "person", p); 

         // 通过一个FileReader读取模板文件 
        Reader reader =  new FileReader( new File( "Q:\\_dev_stu\\commons_stu\\velocity\\src\\simple\\person.vm")); 

         // 创建一个字符串输出流,模板输出的目标 
        StringWriter writer =  new StringWriter(); 
         // 根据模板上下文对模板求值,logMsgName字符串为发生异常时候记录模板异常提供方便 
        Velocity.evaluate(context, writer,  "logMsgName", reader); 
         // 将求值的结果从控制台输出 
        System.out.println(writer.toString()); 
    } 
}
 
运行结果:
<personlist> 
    <person> 
        <name>zhangsan</name> 
        <sex>men</sex> 
        <sex>22</sex> 
    </person> 
</personlist> 


Process finished with exit code 0
 
可以看出,输入内容是按照模板来输出的。
 
Velocity应用的难点在于其控制语法,下篇会详细讲述。
 

本文转自 leizhimin 51CTO博客,原文链接:http://blog.51cto.com/lavasoft/93160,如需转载请自行联系原作者
相关文章
|
Linux
`grep`命令搜索当前目录及其子目录下的所有文件
`grep`命令搜索当前目录及其子目录下的所有文件
4730 1
|
应用服务中间件 nginx
|
存储 缓存 网络协议
Linux环境下配置虚拟ip,方法1:新增多个子网卡,每个子网卡有独立的配置文件
Linux环境下配置虚拟ip,方法1:新增多个子网卡,每个子网卡有独立的配置文件
5859 0
Linux环境下配置虚拟ip,方法1:新增多个子网卡,每个子网卡有独立的配置文件
|
SQL 数据可视化 数据处理
使用SQL和Python处理Excel文件数据
使用SQL和Python处理Excel文件数据
622 0
|
JavaScript
在vue3中使用markdown编辑器
在vue3中使用markdown编辑器
在vue3中使用markdown编辑器
|
编译器 C++
VS /PROFILE(性能工具探查器)的使用
VS /PROFILE(性能工具探查器)的使用
251 0
|
10月前
|
SQL 关系型数据库 数据库
PostgreSQL性能飙升的秘密:这几个调优技巧让你的数据库查询速度翻倍!
【10月更文挑战第25天】本文介绍了几种有效提升 PostgreSQL 数据库查询效率的方法,包括索引优化、查询优化、配置优化和硬件优化。通过合理设计索引、编写高效 SQL 查询、调整配置参数和选择合适硬件,可以显著提高数据库性能。
1731 1
|
SQL 存储 Oracle
19 PostgreSQL 锁类型,锁模式,锁冲突,死锁检测的介绍|学习笔记
快速学习19 PostgreSQL 锁类型,锁模式,锁冲突,死锁检测的介绍
19 PostgreSQL 锁类型,锁模式,锁冲突,死锁检测的介绍|学习笔记
|
XML JSON API
⚡REST 和 SOAP 协议有什么区别?
这篇文章对比了 REST 和 SOAP 两种常见的 Web API 规范。REST 是一种 API 架构风格,遵循客户端-服务器、无状态和缓存等原则,使用 HTTP 协议和 JSON 格式,适合轻量级、高兼容性的场景。SOAP 是一种基于 XML 的网络服务访问协议,提供消息级安全性和 ACID 合规性,适用于企业级应用。REST 的优点包括前后端分离、浏览器兼容和带宽效率,而 SOAP 适用于需要高级安全特性的应用。除了 REST 和 SOAP,还有 gRPC 和 GraphQL 等其他选择。