引言

Velocity是一款非常高效的基于Java语言的模板引擎,应用十分广泛,尤其是应用在各类代码生成场景如现在非常流行的mybatis-plus-generator的默认模板引擎采用的就是Velocity。

目前,互联网上有很多关于Velocity教程的技术博客,然而多数文章的代码逻辑十分混乱,层次不清,多数仅仅只是实现了基本功能而已。为此,本系列博客将只介绍必要的、最少的代码,同时非常注重代码的逻辑,力求为大家提供最简明、最清晰的教程。

目标

  • 快速掌握Velocity的基本用法;

方法

  • 实例化VelocityEngine对象实例;
  • 准备context数据;
  • 准备writer对象;
  • 获得template对象并调用merge()方法;
  • 测试模板生成结果。

代码


import org.apache.velocity.Template;
import org.apache.velocity.VelocityContext;
import org.apache.velocity.app.VelocityEngine;
import org.apache.velocity.context.Context;
import java.io.*;
import java.util.Properties;public class Client {public static void main(String[] args) throws IOException {// (1) 获得engine实例对象;Properties p = new Properties();p.setProperty("file.resource.loader.class","org.apache.velocity.runtime.resource.loader.ClasspathResourceLoader");VelocityEngine velocityEngine = new VelocityEngine(p);velocityEngine.init();// (2.1) 准备context;Context context = new VelocityContext();context.put("name", "bob");// (2.2) 准备writer;Writer writer = new StringWriter();// (2.3) 开始合并生成;
//        Template template = new Template(); // !!!易出错点Template template = velocityEngine.getTemplate("demo.vm"); //template.merge(context, writer);// (3) 测试合并结果System.out.println(writer.toString());}
}

resources/demo.vm文件

hello, ${name}.

Velocity简明教程(1)相关推荐

  1. EasyJWeb-Velocity脚本简明教程

    EasyJWeb-Velocity脚本简明教程 (pdf版) 很多人下载了EasyJWeb的开源应用示例,但是对动态页面模板文件中的标签使用不是很熟悉,这里简单介绍一下.EasyJWeb特定把视图限定 ...

  2. CGIC简明教程(转摘)

    CGIC简明教程 本系列的目的是演示如何使用C语言的CGI库"CGIC"完成Web开发的各种要求. *********************************     基础 ...

  3. kangle web server源代码安装简明教程

    kangle web server源代码安装简明教程 - kangle使用交流 - kangle软件 是一款高性能web服务器,反向代理服务器,提供虚拟主机管理系统及代理服务器,web服务器架设 - ...

  4. CentOs6.5中安装和配置vsftp简明教程

    这篇文章主要介绍了CentOs6.5中安装和配置vsftp简明教程,需要的朋友可以参考下 一.vsftp安装篇 复制代码代码如下: # 安装vsftpd yum -y install vsftpd # ...

  5. sqlalchemy mysql_SQLAlchemy简明教程

    原文可见:SQLAlchemy简明教程 - Jiajun的编程随想 SQLAlchemy是Python中常用的一个ORM,SQLAlchemy分成三部分: ORM,就是我们用类来表示数据库schema ...

  6. python tcp server_python scoket 编程 | tcp server client - 简明教程

    TCP 和 UDP 的区别 这两个协议都是传输层的协议,解决的问题,都是端口与端口的通信问题. TCP 每次建立通信,都需要三次握手,确定双方状态完毕,在发送数据.如果发送的数据出现了异常,TCP 也 ...

  7. 简明python教程pdf-python简明教程中文pdf

    python简明教程中文pdf电子书是作者通过自己对计算机语言多年来的研究和学习得出的学习经验,对于python新手来说非常有用,值得大家下载学习. python简明教程中文pdf文章目录 1.介绍 ...

  8. 简明python教程在线-Python简明教程

    Python简明教程在线阅读地址: https://bop.molun.net/ DocStrings 该文档字符串所约定的是一串多行字符串,其中第一行以某一大写字母开始,以句号结束.第二行为空行,后 ...

  9. linux 防火墙iptables简明教程

    前几天微魔部落再次遭受到个别别有用心的攻击者的攻击,顺便给自己充个电,复习了一下linux下常见的防火墙iptables的一些内容,但是无奈网上的很多教程都较为繁琐,本着简明化学习的目的,微魔为大家剔 ...

最新文章

  1. 1139 First Contact (30 分)【难度: 一般 / 知识点: 模拟】
  2. obs可以推到中转服务器吗,[经验分享]OBS 如何实现多路推流
  3. foreach用法_25个你不得不知道的数组reduce高级用法
  4. 5 交换机-direct (路由)
  5. PageLayoutControl的基本操作
  6. Android Studio 环境搭建参考,jdk10javac命令提示不是内部或外部命令
  7. ls mac 显示最近修改日期_Find Any File for Mac(Mac本地文件搜索工具)
  8. [转帖]Docker 清理占用的磁盘空间
  9. 66. 加一(C, Python)
  10. C#值类型和引用类型的区别
  11. JVM相关知识——内存分布和垃圾回收机制
  12. 计算机二级考试vb试题,2016计算机二级考试《VB》真题练习
  13. 微软 2021 校园招聘正式启动!
  14. JavaScript里的var变量
  15. Neo4j【有与无】【N0】前言
  16. 基础知识----Symbian UIQ
  17. 华为Android岗面经;群面+技术面+英语面+面试题详解
  18. soul显示服务器错误,Soul接入一个Http服务
  19. react中将json对象转换为数组
  20. (转)从程序员到产品经理

热门文章

  1. 明日之后良心造房技巧分享:更有十一庄别墅房闪亮登场
  2. java uuid去掉横线_java去掉UUID的小横线的算法
  3. 家里的父母需要体检,体检项目有哪些?
  4. 中国喷管装置市场趋势报告、技术动态创新及市场预测
  5. docker容器存放目录磁盘空间满了,转移数据修改Docker默认存储位置
  6. php穿梭框多选,多选穿梭框总结 (vue + element)
  7. drawtext ffmpeg 倾斜_ffmpeg # drawtext 进阶
  8. IMX6 wm8960 驱动调试记录
  9. 某工程师在工作电脑存 64G 不雅文件,被公司开除,结果…
  10. 大数据背景下 个性化服务如何成功落地?