web基础----->模板引擎Velocity的使用(二)
这里面是关于velocity的一些用法,比较基础的使用。愿你生命中有够多的云翳,来造成一个美丽的黄昏。
velocity生成javaBean

一、定义一个简单的bean类
public class ClassBean {
private String name;
private String comment;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getComment() {
return comment;
}
public void setComment(String comment) {
this.comment = comment;
}
}
二、生成javabean的velocity代码
private VelocityEngine init() {
VelocityEngine ve = new VelocityEngine();
ve.setProperty(RuntimeConstants.RESOURCE_LOADER, "classpath");
ve.setProperty("classpath.resource.loader.class", ClasspathResourceLoader.class.getName());
ve.init();
return ve;
}
@Test
public void velocity_test_2() {
VelocityEngine ve = init();
Template t = ve.getTemplate("template/ClassVelocity.vm");
VelocityContext ctx = new VelocityContext();
// 数据
List<ClassBean> classBeans = new ArrayList<>();
ClassBean classBean1 = new ClassBean();
classBean1.setName("username");
classBean1.setComment("用户名");
ClassBean classBean2 = new ClassBean();
classBean2.setName("password");
classBean2.setComment("密码");
ClassBean classBean3 = new ClassBean();
classBean3.setName("address");
classBean3.setComment("地址");
classBeans.add(classBean1);
classBeans.add(classBean2);
classBeans.add(classBean3);
ctx.put("className", "Person");
ctx.put("list", classBeans);
StringWriter sw = new StringWriter();
t.merge(ctx, sw);
System.out.println(sw.toString());
}
三、ClassVelocity.vm的内容如下
##首字母大写
#macro(initUpperCase $field)
$field.toUpperCase().substring(,)$field.substring()##
#end public class $className {
#foreach($bean in $list)
private String $bean.getName(); // $bean.getComment()
#end
#foreach($bean in $list)
#set($filed = $bean.getName())
public String get#initUpperCase($filed)() {
return $filed;
}
public void set#initUpperCase($filed)(String $filed){
this.$filed = $filed;
}
#end
}
四、生成的代码如下:
public class Person {
private String username; // 用户名
private String password; // 密码
private String address; // 地址
public String getUsername() {
return username;
}
public void setUsername(String username){
this.username = username;
}
public String getPassword() {
return password;
}
public void setPassword(String password){
this.password = password;
}
public String getAddress() {
return address;
}
public void setAddress(String address){
this.address = address;
}
}
友情链接
- 关于velocity的基础使用:http://www.cnblogs.com/huhx/p/baseusewebvelocity1.html
- 关于velocity的一些使用:https://www.ibm.com/developerworks/cn/java/j-lo-velocity1/
web基础----->模板引擎Velocity的使用(二)的更多相关文章
- web基础----->模板引擎Velocity的使用(一)
Velocity 是一个基于 Java 的模板引擎框架,提供的模板语言可以使用在 Java 中定义的对象和变量上.今天我们就学习一下Velocity的用法. Velocity的第一个例子 项目的主体是 ...
- 模板引擎 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- ...
随机推荐
- HTML——动画效果:左侧固定悬浮栏(图标控制)
效果: 默认时: 点击按钮时 html: <!DOCTYPE html> <html> <head> <title>智能家居</title> ...
- Entity Framework应用:使用Code First模式管理视图
一.什么是视图 视图在RDBMS(关系型数据库管理系统)中扮演了一个重要的角色,它是将多个表的数据联结成一种看起来像是一张表的结构,但是没有提供持久化.因此,可以将视图看成是一个原生表数据顶层的一个抽 ...
- java-JSP脚本的9个内置对象
http://blog.csdn.net/titilover/article/details/6800782 http://www.importnew.com/19128.html http://ww ...
- 高性能高并发网络库:StateThreads
StateThreads是一个C的网络程序开发库,提供了编写高性能.高并发.高可读性的网络程序的开发库,轻量级网络应用框架 共也就3000行C代码 网络程序(Internet Application) ...
- mysql 分库分表(水平切割和垂直切割)
分表是分散数据库压力的好方法. 分表,最直白的意思,就是将一个表结构分为多个表,然后,可以再同一个库里,也可以放到不同的库. 当然,首先要知道什么情况下,才需要分表.个人觉得单表记录条数达到百万到千万 ...
- easyui datagrid列拖拽
<script type="text/javascript"> var cols = [{ field: 'testName', title: '<span cl ...
- Python:基本运算、基本函数(包括复数)、Math模块、NumPy模块
基本运算 x**2 : x^2 若x是mat矩阵,那就表示x内每个元素求平方 inf:表示正无穷 逻辑运算符:and,or,not 字典的get方法 a.get(k,d) 1 1 get相当于一条if ...
- ViZDoom安装
官网:https://github.com/mwydmuch/ViZDoom/blob/master/doc/Building.md 环境:ubuntu16, python2.7, Anaconda2 ...
- 【转】PNG图像文件格式
5.2 PNG图像文件格式 PNG是可携式网络图像(portable network graphics)的英文缩写.PNG是从网络上开始发展的,目的是替代GIF和JPG格式,PNG图像文件格式也是当 ...
- python print 不换行
#!/usr/bin/python # -*- coding: UTF- -*- ,): ,i+): print "%d * %d = %2d\t" % (j, i, i*j), ...