web基础----->模板引擎Velocity的使用(一)
Velocity 是一个基于 Java 的模板引擎框架,提供的模板语言可以使用在 Java 中定义的对象和变量上。今天我们就学习一下Velocity的用法。
Velocity的第一个例子
项目的主体是两个文件,文件的位置如下图:

一、在pom中添加Velocity的依赖
<dependency>
<groupId>org.apache.velocity</groupId>
<artifactId>velocity</artifactId>
<version>1.7</version>
</dependency>
二、HelloVelocity的代码如下:
package com.liuling; import org.apache.velocity.Template;
import org.apache.velocity.VelocityContext;
import org.apache.velocity.app.VelocityEngine;
import org.apache.velocity.runtime.RuntimeConstants;
import org.apache.velocity.runtime.resource.loader.ClasspathResourceLoader;
import org.junit.Test; import java.io.StringWriter;
import java.util.ArrayList;
import java.util.Date;
import java.util.List; /**
* Created by huhx on 2017-07-14.
*/
public class HelloVelocity {
@Test
public void velocity_test_1() {
VelocityEngine ve = new VelocityEngine();
ve.setProperty(RuntimeConstants.RESOURCE_LOADER, "classpath");
ve.setProperty("classpath.resource.loader.class", ClasspathResourceLoader.class.getName());
ve.init(); Template t = ve.getTemplate("template/Hellovelocity.vm");
VelocityContext ctx = new VelocityContext(); // 数据
ctx.put("className", "HelloVelocity");
ctx.put("description", "My first velocity demo.");
ctx.put("date", (new Date()).toString()); List temp = new ArrayList();
temp.add("username");
temp.add("password");
ctx.put("list", temp); StringWriter sw = new StringWriter();
t.merge(ctx, sw);
System.out.println(sw.toString());
}
}
三、Hellovelocity.vm的内容如下:
#set( $myName = "huhx" )
/**
* @author: $myName
* @date: $date
* @description: $description
*/
public class $className {
#foreach($name in $list)
private String $name;
#end
}
四、运行的结果如下:
/**
* @author: huhx
* @date: Fri Jul 14 10:48:46 CST 2017
* @description: My first velocity demo.
*/
public class HelloVelocity {
private String username;
private String password;
}
友情链接
- velocity的官方文档:http://velocity.apache.org/engine/devel/user-guide.html
- velocity的中文翻译:http://blog.csdn.net/hkendless/article/details/6903627
web基础----->模板引擎Velocity的使用(一)的更多相关文章
- web基础----->模板引擎Velocity的使用(二)
这里面是关于velocity的一些用法,比较基础的使用.愿你生命中有够多的云翳,来造成一个美丽的黄昏. velocity生成javaBean 一.定义一个简单的bean类 public class C ...
- 模板引擎 Velocity
模板引擎 Velocity 一.Velocity简介: Velocity是一个基于java的模板引擎(template engine).它允许任何人仅仅简单的使用模板语言(template langu ...
- OSCHina技术导向:Java模板引擎velocity
OSChina 采用 velocity 作为页面模板 Velocity是一个基于java的模板引擎(template engine).它允许任何人仅仅简单的使用模板语言(template langua ...
- [Java] 模板引擎 Velocity 随笔
Velocity 是一个基于 Java 的模板引擎. 本博文演示 Velocity 的 HelloWord 以及分支条件. HelloWord.vm,模板文件. templateDemo.java, ...
- apache的开源项目-模板引擎(Velocity)(转)
然后修改conf文件下的server.xml文件,在server.xml里的 <Connector port="8080" .... />字段后 ...
- 模板引擎Velocity学习系列-#set指令
#set指令 #set指令用于向一个变量或者对象赋值. 格式: #set($var = value) LHS是一个变量,不要使用特殊字符例如英文句号等,不能用大括号括起来.测试发现#set($user ...
- springBoot(6):web开发-模板引擎jsp
一.新建工程 注意新建的工程下没有webapp目录eclipse下会自动创建webapp目录这里我们需要自动创建一个webapp目录并创建WEB-INF. 对ServletInitializer.ja ...
- Velocity模板引擎入门
类似于PHP中的Smarty,Velocity是一个基于Java的模板引擎(template engine).它允许任何人仅仅简单的使用模板语言(template language)来引用由java代 ...
- 【转载】Velocity模板引擎的介绍和基本的模板语言语法使用
原文地址http://www.itzhai.com/the-introduction-of-the-velocity-template-engine-template-language-syntax- ...
随机推荐
- Android—— 线程 thread 两种实现方法!(转)
原文地址:http://blog.csdn.net/boyupeng/article/details/6208072 这篇文章中有三点需要提前说明一下, 一: 在android中有两种实现线程thre ...
- datanode与namenode的通信
在分析DataNode时, 因为DataNode上保存的是数据块, 因此DataNode主要是对数据块进行操作. A. DataNode的主要工作流程1. 客户端和DataNode的通信: 客户端向D ...
- HBase shell 命令。
HBase shell 命令. 进入hbase shell console$HBASE_HOME/bin/hbase shell如果有kerberos认证,需要事先使用相应的keytab进行一下认证( ...
- FTP原理
1.1.1 ftp的主动模式和被动模式 扩展重要. FTP是仅基于TCP的服务,不支持UDP. 与众不同的是FTP使用2个端口,一个数据端口和一个命令端口(也可叫做控制端口).通常来说这两个端口是21 ...
- 关于Cocos2d-x中UI按钮的定义
1.要有两张不同状态的图片 2.定义一个MenuItemSprite的实例,把这两张图的Sprite实例放进MenuItemSprite的实例 3.把MenuItemSprite的实例放进Menu实例 ...
- 【转】MFC 无边框窗口的拖动
MFC中无边框窗口的拖动 void CXXXXDialog::OnLButtonDown(UINT nFlags, CPoint point) { PostMessage(WM_NCLBUTTONDO ...
- 第二百九十九节,python操作redis缓存-SortSet有序集合类型,可以理解为有序列表
python操作redis缓存-SortSet有序集合类型,可以理解为有序列表 有序集合,在集合的基础上,为每元素排序:元素的排序需要根据另外一个值来进行比较,所以,对于有序集合,每一个元素有两个值, ...
- samtools flags 的含义
对于双端比对的数据,生成的BAM文件中,R1端序列和R2端序列的标识符是一样的,之前一直不知道如何根据bam文件区分哪条序列是R1端,哪条序列是R2端,昨天仔细研究了一下,原来代表R1端和R2端的信息 ...
- ThinkPHP的ajaxReturn方法的使用
ThinkPHP后端的代码如下: public function testAjax(){ $this->ajaxReturn(array('name'=>'z','age'=>18) ...
- 如何让View一直沿z轴旋转
#import <QuartzCore/QuartzCore.h>... CABasicAnimation *rotationAni = [CABasicAnimation animati ...