博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
快速了解Velocity模板引擎
阅读量:7105 次
发布时间:2019-06-28

本文共 3838 字,大约阅读时间需要 12 分钟。

hot3.png

下面是一段来自互联网对于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模型进行开发。

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

使用了模板语言定义的模板文件

    
$user.name
    
$user.age
    
$user.gender

可以输出显示为

    
chenzuhuang
    
21
    
male

或者

    
tankui
    
22
    
male

这都取决于你java代码传入的对象user里存放的信息。

甚至你还可以使用判断循环语句

    #foreach $!{user} in $!{userList}    
    
$user.name
    
$user.age
    
$user.gender
    
    #end

简而言之,模板语言的使用需要事先写一份模板,在模板中的可变值处使用变量,当需要将模板文件用作显示或者作为字符串输出的时候,会把java bean中信息填充到模板文件中使用变量之处。

下面来看一个Velocity的使用例子,来了解下Velocity的工作原理以及应用。

一、下载Velocity的jar包

http://download.csdn.net/detail/yatyou/8731659

二、创建Eclipse Java Project

buildpath导入这两个jar包:

velocity-1.7.jar

Velocity-1.7-dep.jar

三、定义模板

在项目根目录下创建文件夹vm,并在其中创建一个文件index.vm

            用户信息                
            
            
        
用户名 $user.username
年龄 $user.age
    

四、定义java bean,用来传递数据

package com.chenzuhuang.blog.bean; public class User {    private String username;    private int age;         public User(String username, int age){        this.username = username;        this.age = age;    }         public String getUsername() {        return username;    }    public void setUsername(String username) {        this.username = username;    }    public int getAge() {        return age;    }    public void setAge(int age) {        this.age = age;    }}

五、测试

package com.chenzuhuang.blog.core; import java.io.FileNotFoundException;import java.io.FileReader;import java.io.Reader;import java.io.StringWriter; import org.apache.velocity.VelocityContext;import org.apache.velocity.app.Velocity; import com.chenzuhuang.blog.bean.User; public class VelocityTest {     public static void main(String[] args) throws FileNotFoundException {        //创建bean对象        User user = new User("chenzuhuang", 21);                 //初始化Velocity引擎,Velocity引擎是单例模式且线程安全。        Velocity.init();                 //创建VelocityContext上下文环境,并将user对象存放到VelocityContext中        VelocityContext context = new VelocityContext();        context.put("user", user);                 //通过FileReader来读取模板文件        Reader reader = new FileReader("vm/index.vm");                 //创建字符串输出流,Velocity会将填充值后的模板字符串放在StringWriter里        StringWriter vmWriter = new StringWriter();                  //根据指定的VelocityContext上下文对模板进行填值。        //第一个参数为指定上下文,第二个参数为字符串输出流,第三个参数为日志Tag,第四个为模板输文件输入流        Velocity.evaluate(context, vmWriter, "UserMessage", reader);                 //将经过替换模板输出        System.out.println(vmWriter.toString());             } }

六、运行

输出结果为

            用户信息                
            
            
        
用户名 chenzuhuang
年龄 21
    

Blog:

首发于:

转载必须说明出处

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

转载于:https://my.oschina.net/chenzuhuang/blog/425912

你可能感兴趣的文章
第十天 练习
查看>>
改变从今天开始
查看>>
IPROS G8000产品概述:
查看>>
我的友情链接
查看>>
必看!决定蓝领薪酬高低的因素
查看>>
window.location.href 失效的解决办法
查看>>
删除密码设置对象(PSO)
查看>>
第1章 安装Exchange2010
查看>>
重写CMFCRibbonStatusBarPane类
查看>>
linux环境下安装mysql
查看>>
2015-10-19高项作业
查看>>
cisco对某一IP的限速
查看>>
忠告17:本田宗一郎:成功出现在九十九次失败后
查看>>
长途猫的归属
查看>>
查看硬件信息命令
查看>>
【翻译】为Ext JS和Sencha Touch开发人员准备的应用程序监测(App Inspector)
查看>>
Hibernate(2)
查看>>
制作WinCE 5.0的ARM模拟器
查看>>
PHP字符串(1)-初始化
查看>>
一个笔试题
查看>>