Velocity学习
原创:转载需注明原创地址 https://www.cnblogs.com/fanerwei222/p/11790482.html
Velocity学习:
1. velocity对大小写敏感
2. velocity的具体用法:
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;
/**
* 初始化Velocity引擎
*/
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("ureport-html/html-preview.html");
/**
* 创建Velocity上下文
*/
VelocityContext vctx = new VelocityContext();
/**
* 放入数据
*/
vctx.put("data", "data");
vctx.put("html", "htmldata");
/**
* 创建一个任意形式的wirter,用于输出页面数据
* 假设前面有response传入
*/
response.setContentType("text/html");
response.setCharacterEncoding("utf-8");
//Writer writer = new Writer(); //可以new一个Writer, 也可以从response中获取,设置输出的信息
PrintWriter writer = response.getWriter();
/**
* 交给模板去处理
*/
t.merge(vctx, writer)
writer.close();
3. 语法
#set( $foo = "Velocity" ) 设置变量的值
## 单行注释
#* 随便什么内容 *# 多行注释
$user 引用Java中定义的对象
$user.name 引用user对象的属性
$user.setName("fw"); 方法引用
$user.getName(); 这个和$user.name 效果是一样的
如果有一个对象是引用的Java数组,那还可以直接调用Java数组的方法:
$myarray.isEmpty()
$myarray.size()
$myarray.get(2)
$myarray.set(1, 'test')
${userName} 这种写法也支持
$!userName 如果userName是空值, 那么就显示""空字符串
${!userName} ${}是正式引用; !是静态引用
不解析模式:下面的代码将会输出 #[[ ]]#中的内容;
#[[
#foreach ($item in $itemList)
nothing will happen to $item
#end
]]#
判断语句 If / ElseIf / Else && || !
#if ()
//do something
#elseif ()
//do something
#elseif ()
//do something
#else
//do something
#end
循环 foreach
#foreach ($name in $users)
$name
#end
#include( "one.png","two.txt","three.html" )
#parse( "me.vm" )
Velocity学习的更多相关文章
- velocity学习总结
什么是velocity velocity是一个基于Java的模板引擎,它可以实现彻底的前后端,前端不允许像jsp那样出现Java代码,而是利用context容器传递变量,在java代码里面我们可以往容 ...
- Velocity学习笔记
一.为什么要使用velocity? 很多人下载了EasyJWeb的开源应用示例,但是对动态页面模板文件中的标签使用不是很熟悉,这里简单介绍一下.EasyJWeb特定把视图限定为Velocity,因为我 ...
- Velocity学习4
Velocity是一个基于java的模板引擎(template engine).它允许任何人仅仅简单的使用模板语言(template language)来引用由java代码定义的对象. 当Veloci ...
- Velocity学习3
Velocity快速入门教程 Apache的速度是一个基于Java的的模板引擎(模板引擎),它允许任何人仅仅简单的使用模板语言(模板语言)来引用由java的代码定义的对象. 官网介绍如下: Veloc ...
- Velocity学习2
Velocity是一个基于java的模板引擎(template engine).它允许任何人仅仅简单的使用模板语言(template language)来引用由java代码定义的对象. 当Veloci ...
- 模板引擎Velocity学习系列-#set指令
#set指令 #set指令用于向一个变量或者对象赋值. 格式: #set($var = value) LHS是一个变量,不要使用特殊字符例如英文句号等,不能用大括号括起来.测试发现#set($user ...
- velocity学习记录
一.引入文件 静态引入:#include("./footer.vm.html") 动态引入:#parse("./header.vm.html") 说明:./为v ...
- velocity模板引擎学习(1)
velocity与freemaker.jstl并称为java web开发三大标签技术,而且velocity在codeplex上还有.net的移植版本NVelocity,(注:castle团队在gith ...
- 一个Velocity Template Language学习的框架
Velocity Template Language(VTL)使得数据展示和后台代码的开发分离开来,最初用在基于servlet的网站开发上,它的这一特性使得它在应付MVC Web开发模式时显得尤其合适 ...
随机推荐
- Go 通过 Map/Filter/ForEach 等流式 API 高效处理数据
什么是流处理 如果有 java 使用经验的同学一定会对 java8 的 Stream 赞不绝口,极大的提高了们对于集合类型数据的处理能力. int sum = widgets.stream() .fi ...
- Kafka和RabbitMQ有哪些区别,各自适合什么场景?
经常有人问我 有个 xx 需求,我应该用 Kafka 还是 RabbitMQ ? 这个问题很常见,而且很多人对二者的选择也把握不好. 所以我决定写篇文章来详细说一下:Kafka 和 RabbitMQ ...
- 初识python 之 爬虫:爬取中国天气网数据
用到模块: 获取网页并解析:import requests,html5lib from bs4 import BeautifulSoup 使用pyecharts的Bar可视化工具"绘制图表& ...
- 本地Java大数据环境基础配置(Maven)
注:图片如果损坏,点击文章链接:https://www.toutiao.com/i6812623309138559500/ 创建项目 准备pom.xml文件配置(附在文档最后) 在下载jar过程中极其 ...
- 基于CentOS6.5-Hadoop2.7.3-hive-2.1.1安装sqoop1.4.7
注:图片如果损坏,点击文章链接:https://www.toutiao.com/i6627736198431375879/ 系统版本,Hadoop已安装完成.链接<CentOS6.5下安装Had ...
- icmpsh之icmp反弹shell
一,技术原理 向ping www.baidu.com时,本机会先向百度的服务器发送ICMP请求包,如果请求成功了,则百度服务器会回应ICMP的响应包 引用百度百科: ICMP(Internet Con ...
- Allwinner F1C100s coremark测试
ccu register base:0x01c20000 devmem 0x01c20000 The PLL output=(24MHz*N*K)/(M*P) N=31 K=1 M=1 P=/1 re ...
- Lucene8.5.x全文检索工具
本文的资源展示: hotword:是热词的文本,比如不是词语的中文,但是是什么人名或者公司名称的词语,需要分词成一个词语的将需要的加入hotword.dic stopword:无意义的词放入的词典,或 ...
- 使用.NET 6开发TodoList应用(27)——实现API的Swagger文档化
系列导航及源代码 使用.NET 6开发TodoList应用文章索引 需求 在日常开发中,我们需要给前端提供文档化的API接口定义,甚至需要模拟架设一个fake服务用来调试接口字段.或者对于后端开发人员 ...
- 【Java】重载与重写
重载与重写 一.重载 定义 在同一个类中,允许存在一个以上的同名方法,只要它们的参数个数或者参数类型不同即可.同一个类.相同方法名,参数列表不同:参数个数不同,参数类型不同. Java的重载是可以包括 ...