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. 分类、检测、分割任务均有SOTA表现,ACNet有多强?
  2. js里面把密码encode_Python进阶最详细的JS加密登录X博
  3. python多线程爬虫实例-Python多线程在爬虫中的应用
  4. 北京奥运会闭幕式落下帷幕
  5. 计算未来轻沙龙 | 顶会论文相继放榜,NLP领域有哪些最新进展?
  6. DevExpress 选择框如何进行模糊查询
  7. python 跳出for循环_python中如何退出for循环
  8. 项目中使用 java函数式编程_函数式编程在Java8中使用Lambda表达式进行开发
  9. python流行趋势_Python流行度再创新高,学Python就从风变编程开始
  10. Java 总结finalize()方法
  11. 【转】C#中Serializable序列化实例详解
  12. EMS企业能源管理系统-工厂能源管控——安科瑞高逍
  13. 【微信支付开发流程】
  14. 126邮箱stmp服务器,免费邮箱
  15. 计算机演示文稿实验报告,演示文稿实验报告
  16. 计算机界面一直闪,电脑光标一直闪烁怎么办?Win7左上角白杠一直闪解决方法...
  17. 小巧 mvc servlet 通过反射 跳转 bussiness层
  18. 以太坊钱包Metamask 下载,Metamask 7.7.9最新版官方版下载和安装方法
  19. 华为交换机的远程登录和密码设置
  20. 取供应商类型所在的快码

热门文章

  1. Kibana:如何在 Discover 中显示图片及播放音乐
  2. 面试经验-(1)宁波银行
  3. [UOJ#207]共价大爷游长沙
  4. 2022建筑焊工(建筑特殊工种)考试题库及在线模拟考试
  5. Prometheus Operator概述
  6. 究竟什么是Vanilla JS?(娱乐向)
  7. python小游戏 吃豆人小游戏设计与实现
  8. 知+是什么,知乎知+怎么开通?
  9. 35、基于51单片机的金属探测器
  10. 支持向量机(SVM)之核函数