[Java] 模板引擎 Velocity 随笔
Velocity 是一个基于 Java 的模板引擎。
本博文演示 Velocity 的 HelloWord 以及分支条件。
HelloWord.vm,模板文件。
templateDemo.java, 演示 Velocity 模板引擎。
App.java, 应用的入口
在 Eclipse 上,基于 maven 管理工具,运行后目录结构如下
源代码只存在于 ./src/main 目录下面。target 目录为 maven 生成输出的目录,可做参考。test 目录为测试代码目录,此处可忽略。
grs:test grs$ pwd
/Users/grs/Documents/Java/mavenDemo/test
grs:test grs$ tree
.
├── pom.xml
├── src
│ ├── main
│ │ ├── java
│ │ │ └── tony
│ │ │ └── test
│ │ │ ├── App.java
│ │ │ └── TemplateDemo.java
│ │ └── resources
│ │ └── HelloWord.vm
│ └── test
│ └── java
│ └── tony
│ └── test
│ └── AppTest.java
└── target
├── classes
│ ├── HelloWord.vm
│ └── tony
│ └── test
│ ├── App.class
│ └── TemplateDemo.class
└── test-classes
└── tony
└── test
└── AppTest.class
具体代码
HelloWord.vm,模板文件
Hello $name ! wwwwww
---
#if($value == 1)
value is 1, name is $name
#else
value is not 1, name is $name
#end
TemplateDemo,演示代码。需要注意的是,获取当前目录时,指向的是当前项目的根目录路径,所以在查找模板文件 HelloWord.vm 时,路径也是从项目根目录开始查找。
package tony.test; import java.io.File;
import java.io.StringWriter; import org.apache.velocity.Template;
import org.apache.velocity.VelocityContext;
import org.apache.velocity.app.VelocityEngine; public class TemplateDemo { public static void main(){ File file = new File(".");
System.out.println(file.getAbsolutePath()); try {
VelocityEngine ve = new VelocityEngine();
ve.init(); Template template = ve.getTemplate("./src/main/resources/HelloWord.vm"); VelocityContext context = new VelocityContext();
context.put("name", "TTTTT");
context.put("value", "1"); StringWriter writer = new StringWriter(); template.merge(context, writer); System.out.println(writer.toString()); } catch (Exception e) {
e.printStackTrace();
}
}
}
App 应用入口
package tony.test; public class App
{
public static void main( String[] args )
{
TemplateDemo.main();
}
}
Eclipse 下的目录结构,以供参考

参考资料
Start up the Velocity Template Engine, javaWorld
Introduction to the Standard Directory Layout
[Java] 模板引擎 Velocity 随笔的更多相关文章
- OSCHina技术导向:Java模板引擎velocity
OSChina 采用 velocity 作为页面模板 Velocity是一个基于java的模板引擎(template engine).它允许任何人仅仅简单的使用模板语言(template langua ...
- jetbrick,新一代 Java 模板引擎,具有高性能和高扩展性
新一代 Java 模板引擎,具有高性能和高扩展性. <!-- Jetbrick Template Engineer --> <dependency> <groupId&g ...
- Java 模板引擎 jetbrick-template
jetbrick-template 是一个新一代 Java 模板引擎,具有高性能和高扩展性. 适合于动态 HTML 页面输出或者代码生成,可替代 JSP 页面或者 Velocity 等模板. 指令和 ...
- Java模板引擎 HTTL
新一代java模板引擎典范 Beetl http://www.oschina.net/p/httl HTTL(Hyper-Text Template Language)是一个高性能的开源JAVA模板引 ...
- 模板引擎 Velocity
模板引擎 Velocity 一.Velocity简介: Velocity是一个基于java的模板引擎(template engine).它允许任何人仅仅简单的使用模板语言(template langu ...
- httl开源JAVA模板引擎,动态HTML页面输出
HTTL(Hyper-Text Template Language)是一个适用于HTML输出的开源JAVA模板引擎,适用于动态HTML页面输出,可用于替代JSP页面,它的指令类似于Velocity. ...
- springboot:Java模板引擎Thymeleaf介绍
Thymeleaf是一款用于渲染XML/XHTML/HTML5内容的模板引擎.类似JSP,Velocity,FreeMaker等,它也可以轻易的与Spring MVC等Web框架进行集成作为Web应用 ...
- 新一代Java模板引擎Thymeleaf
新一代Java模板引擎Thymeleaf-spring,thymeleaf,springboot,java 相关文章-天码营 https://www.tianmaying.com/tutorial/u ...
- Thymeleaf(Java模板引擎)
一.概念 1.Thymeleaf是Web和独立环境的开源的Java模板引擎,能够处理HTML,XML,JavaScript,CSS甚至纯文本:2.Thymeleaf可以在Web(基于Servlet)和 ...
随机推荐
- 《Android开发艺术探索》读书笔记 (11) 第11章 Android的线程和线程池
第11章 Android的线程和线程池 11.1 主线程和子线程 (1)在Java中默认情况下一个进程只有一个线程,也就是主线程,其他线程都是子线程,也叫工作线程.Android中的主线程主要处理和界 ...
- Day4 - Python基础4 迭代器、装饰器、软件开发规范
Python之路,Day4 - Python基础4 (new版) 本节内容 迭代器&生成器 装饰器 Json & pickle 数据序列化 软件目录结构规范 作业:ATM项目开发 ...
- group by、order by 先后顺序问题
今天遇到个小问题 本来是很基础的问题 应该说 基础知道掌握的不牢 好了不说 错误 语句 : select a.a1 from table a where order by a.a1 gro ...
- .NET使用js验证服务器控件
<asp:TextBox ID="txtName" runat="server" Width="150px" CssClass=&qu ...
- linux list all users.
cat /etc/passwd sample of list users in linux. ref: Linux Command: List All Users In The System
- angular.js学习手册(二)
如何使用angularjs? 各个 angular.js 版本下载: https://github.com/angular/angular.js/releases 下载完之后,在你需要使用angula ...
- JavaScript--函数-按值传递
按值传递(byValue): 两个变量间赋值或将变量作为参数传入函数时,其实都是将原变量中的值,赋值一份给对方(新变量) 对原始类型的值: 修改新变量,不会影响原变量 对引用类型的对象: 通过新变量修 ...
- java Enum 用法示例
public enum MyEnum { Monday, Tuesday, Wednesday, Thursady, Friday, Saturday, Sunday; public static v ...
- 文件操作1-php
is_file (PHP 3, PHP 4, PHP 5) is_file -- 判断给定文件名是否为一个正常的文件 说明 bool is_file ( string filename ) 如果文件存 ...
- jquery 工作空间注册
在一些面向对象的语言中有命名空间的概念,好处就是把不同的类放在不同的文件夹下面,这样就不会发生命名冲突,当然命名空间还有其他的作用. 在这里我们讨论的是在JS中怎么使用命名空间.当然JS并没有提供原生 ...