Velocity使用示例

Velocity使用步骤

  1. 引入依赖
<!--velocity模板引擎-->
<dependency><groupId>org.apache.velocity</groupId><artifactId>velocity</artifactId><version>1.7</version>
</dependency>
  1. 编写启动类,以测试类为例。
package org.dsg.velocity;import org.apache.velocity.Template;
import org.apache.velocity.VelocityContext;
import org.apache.velocity.app.Velocity;
import org.junit.Test;import java.io.FileWriter;
import java.util.Properties;public class VelocityTest {/*** 1. 设置velocity资源加载器* 2. 初始化引擎* 3. 创建容器* 4. 加载模板文件* 5. 合并数据到模板* 6. 释放资源*/@Testpublic void testQuickStart() throws Exception{Properties props = new Properties();props.put("file.resource.loader.class", "org.apache.velocity.runtime.resource.loader.ClasspathResourceLoader");Velocity.init(props);VelocityContext context = new VelocityContext();context.put("name", "Robert");Template template = Velocity.getTemplate("vms/quickstart.vm", "UTF-8");FileWriter writer = new FileWriter("C:\\quickstart.html");template.merge(context, writer);writer.close();}}
  1. 编写模板文件vms/quickstart.vm;
<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>Title</title>
</head>
<body>
## 单行注释
#*
* 多行注释
*#
#**** 属性引用* $变量名.属性 如果没有对应变量,则原样直接输出* $!变量名.属性 如果没有对应的变量,输出空串*
**#
Hello, ${name}!
<h1>非解析内容</h1>
#[[
非解析内容
${name}
]]
<h1>引用属性</h1>
常规语法: $!{user.name}<h1>指令</h1>
## #set用来声明数据,可以引用之前定义过的变量
#set($str="Hello World")
#set($int=10)
#set($arr=[1, 2, 3, 4])
#set($boolean=true)
#set($map={"key":"value"})
#set($str2 = "Hello, how are you, $str !")
## 获取声明的变量
字符串:$str ${str2}
整型:$int
数组:$arr
布尔:$boolean
Map.key: $map.key## 条件查询
#set($language="java")
#if($language.equals("java"))    JAVA开发工程师
#elseif($language.equals("php"))    PHP工程师
#else工程师
#end## 遍历循环数组或集合
#set($hobbies=["eat", "drink", "play", "music"])
#foreach($hobby in $hobbies)    $foreach.index -- $foreach.count -- $hobby
#end#* #include引入外部资源,不会被引擎所解析* #parse(resource) 引入外部的资源,资源将被引擎所解析,如果配置的是相对路径,是以引擎配置的文件加载器加载路径作为参考系* #define($模块名称) 定义不带参数的重用模块* #evaluate("计算语句") 动态计算,可以让我们在字符串中使用变量* #macro(宏名称 参数) 定义可带参数的重用模块
*#
<h1>定义模块</h1>
#define($hello)
Hello ${who}!
#end
#set($who="World")
调用模块:
$hello#macro(table $users)
<table border="1px" align="center"><tr><td>编号</td><td>用户名</td><td>密码</td></tr>#foreach($user in $users)<tr><td>$foreach.count</td><td>$user.username</td><td>$user.password</td></tr>#end
</table>
#end#set($users=[{"username":"张三", "password":"123"}, {"username":"李四", "password":"456"}])
#table($users)
</body>
</html>
  1. 运行测试类,在指定路径下得到了quickstart.html。
<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>Title</title>
</head>
<body>Hello, Robert!
<h1>非解析内容</h1>非解析内容
${name}<h1>引用属性</h1>
常规语法:
<h1>指令</h1>
字符串:Hello World Hello, how are you, Hello World !
整型:10
数组:[1, 2, 3, 4]
布尔:true
Map.key: valueJAVA开发工程师0  -- 1 -- eat1  -- 2 -- drink2  -- 3 -- play3  -- 4 -- music<h1>定义模块</h1>
调用模块:
Hello World!<table border="1px" align="center"><tr><td>编号</td><td>用户名</td><td>密码</td></tr><tr><td>1</td><td>张三</td><td>123</td></tr><tr><td>2</td><td>李四</td><td>456</td></tr></table>
</body>
</html>

Velocity使用示例相关推荐

  1. Velocity 语法示例

    一.简介: 1)它允许任何人使用简单而强大的模板语言来引用定义在 java 代码中的对象" 2)Velocity是一个基于java的模板引擎,简称VTL(Velocity Template ...

  2. Spring - Java/J2EE Application Framework 应用框架 第 13 章 集成表现层

    第 13 章 集成表现层 13.1. 简介 Spring之所以出色的一个原因就是将表现层从MVC的框架中分离出来.例如,通过配置就可以让Velocity或者XSLT来代替已经存在的JSP页面.本章介绍 ...

  3. Spring - Java/J2EE Application Framework 应用框架

    Spring - Java/J2EE Application Framework Spring Framework 开发参考手册 Spring 中文论坛 Version 1.1 Spring 参考手册 ...

  4. OGRE粒子系统脚本详解

    粒子脚本允许实例化地在自己的脚本代码中定义粒子系统,而不必在源代码中进行设置,可以在做任何修改对哦能得到快速的回应,脚本里定义的粒子系统被用作模版,并且多个实际的系统可以在运行时从脚本里被创建. 粒子 ...

  5. Java 模板引擎总结

    Java模板引擎 FreeMarker 概念 介绍 特性 优势 不足 一个小Demo 概念 FreeMarker是一个模板引擎,一个基于模板生成文本输出的通用工具,使用纯Java编写.它是为Java程 ...

  6. Spring Framework 开发参考手册中文(在线HTML)

    '原文:http://blog.csdn.net/zfrong/article/details/3971722 Spring Framework 开发参考手册中文(在线HTML) Spring Fra ...

  7. cf战队模板(html),09. HTML模板(SEFC)

    前面我们提到过大部分的Dorado页面都不需要JSP,我们可以通过布局管理器和容器完成系统中绝大部分的页面设计,但是也不能排除系统中还是会存在某几个特殊的页面,开发人员希望能够引入JSP或Veloci ...

  8. Spring2.5.2 经典在线教程—https://docs.spring.io/spring/docs/

    Spring 各个版本的API文档:https://docs.spring.io/spring/docs/ 教程地址:http://shouce.jb51.net/spring/ Table of C ...

  9. adalm pluto_Apache Pluto和Velocity集成教程示例

    adalm pluto Velocity is a Project of Apache Software Foundation, it's released under Apache Velocity ...

最新文章

  1. Windows热键注册(反汇编方法 查看win32api 原理)
  2. react 拖拽生成html,[React] 基于react 拖拽时间选择器
  3. Oracle数据库进程杀不掉,求助oracle进程杀不死问题
  4. ssm mysql 插入date 数据_SSM中插入数据没有报错,但是数据库没有值?报错-问答-阿里云开发者社区-阿里云...
  5. Div+CSS教程----DivCSS布局绝对定位和浮动
  6. go var 一个整数_go语言基本语法——数据类型
  7. unity的NGUI
  8. 苹果计算机格式化磁盘,苹果电脑怎么格式化
  9. 纯C#实现的DHT爬虫和磁力搜索引擎 - btcherry.com
  10. 解决Nextcloud新建用户默认语言是英文且默认地区是美国的方法
  11. 阿里应届程序员年薪25W,我酸了,你们呢
  12. 如何成功激活win10专业版
  13. python求幂_python矩阵求幂
  14. 计算机组成原理试题7,计算机组成原理试题7
  15. 百度账号更换绑定的手机号
  16. L6470H_电机驱动控制器 L6470HTR_中文规格书
  17. php doctrine 使用,php – 在Symfony中使用Doctrine创建表
  18. 【山大会议】注册页的编写
  19. .NET Framework各个版本(3.0 - 3.5)
  20. 用C语言编写一个电话簿管理系统

热门文章

  1. 【单元复习】之标日初级下册第九、十单元
  2. 外贸网站优化-外贸网站优化教程-外贸网站优化软件
  3. 深度揭秘:抖音短视频一天涨粉一万怎么做:国仁楠哥
  4. 计算机网络驱动坏了怎么解决办法,电脑网卡驱动坏了怎么办
  5. oci连接mysql_PLSQL Developer配置OCI连接远程数据库
  6. 技术小白真能通过IT培训高薪就业吗?
  7. C语言编写一个简单的选择题答题系统
  8. 同样的JS效果,有部分页面生效,有部分页面无效的原因(怪异模式)
  9. 【渗透测试笔记】之【被动信息收集 】
  10. 最全的CSS浏览器兼容问题