freemarker等的同类产品,可脱离web环境使用。

在web项目中与springMVC搭配,可参考<spring mvc中的视图框架>

它是一个apache的项目,地址为:http://velocity.apache.org/engine/1.7/user-guide.html

1.依赖

<!-- https://mvnrepository.com/artifact/org.apache.velocity/velocity --><dependency><groupId>org.apache.velocity</groupId><artifactId>velocity</artifactId><version>1.7</version></dependency>

2.例子

下面是java文件:
import java.io.StringWriter;
import java.util.ArrayList;
import java.util.List;import org.apache.velocity.Template;
import org.apache.velocity.VelocityContext;
import org.apache.velocity.app.VelocityEngine;
import org.junit.Test;import com.yichudu.meweb.dto.GaoKaoScoreDto;public class velocityTest {@Testpublic void velocityTestFun() {// 初始化模板引擎VelocityEngine ve = new VelocityEngine();// 配置引擎上下文对象VelocityContext ctx = new VelocityContext();ctx.put("gaoKaoScoreList", genData());// 加载模板文件Template template = ve.getTemplate("/WebContent/WEB-INF/template/test.vm");StringWriter sw = new StringWriter();// 渲染模板template.merge(ctx, sw);System.out.print(sw.toString());}public List<GaoKaoScoreDto> genData() {List<GaoKaoScoreDto> gaoKaoScoreList = new ArrayList<>();GaoKaoScoreDto dto = new GaoKaoScoreDto();dto.chinese = 124;dto.english = 100;dto.idCard = "123";dto.luoFenplusZhaoGuFen = 123;dto.math = 1;dto.name = "xiaoming";dto.no = "12";dto.ranking = 2;dto.total = 1234;dto.type = "arts";gaoKaoScoreList.add(dto);return gaoKaoScoreList;}
}
/*
<tbody>
<tr>
<td>12</td>
<td>xiaoming</td>
<td>123</td>
<td>arts</td>
<td>124</td>
<td>1</td>
<td>0</td>
<td>100</td>
<td>1234</td>
<td>123</td>
<td>2</td>
</tr>
</tbody>
*/

下面是vm模板文件:

<tbody>#foreach ($element in $gaoKaoScoreList)<tr><td>$element.no</td><td>$element.name</td><td>$element.idCard</td><td>$element.type</td><td>$element.chinese</td><td>$element.math</td><td>$element.comprehensive</td><td>$element.english</td><td>$element.total</td><td>$element.luoFenplusZhaoGuFen</td><td>$element.ranking</td></tr>#end
</tbody>

3.指令

3.1 foreach

#foreach ($student in $studentList)
<name>$student.name</name>
<grade>$student.grade</grade>
#end

3.2 注解

## This is a single line comment.

上面是行注解,下面是块注解.

#*Thus begins a multi-line comment. Online visitors won'tsee this text because the Velocity Templating Engine willignore it.
*#

3.3 参数赋值

#set( $foo = "bar" )

3.4 访问对象的字段

$foo.getBar()
## is the same as
$foo.Bar

3.5 if-else

#if( $foo < 10 )**Go North**
#elseif( $foo == 10 )**Go East**
#elseif( $bar == 6 )**Go South**
#else**Go West**
#end

3.6 变量边界

#*
页面中有一个$someonename,此时,Velocity将把someonename作为变量名,若我们程序是想在someone这 个变量的后面紧接着显示name字符,则上面的标签应该改成
*#
${someone}name

3.7 include

若干个网页有相同的页脚,除了用<iframe>标签,还可以用#include指令.区别在于<iframe>标签的内容是一个完整的html,而include进来的只是共用的文本片段.
<body>
#include('common/footer.html')
</body>

3.8 parse

与include类似,前者引入的是普通文本,后者引入的是含有指令的文本,并作解析.

4.IDE插件

在 eclipse marketplace中搜索veloedit,安装即可。

图4-1 veloedit的高亮与提示效果

velocity 模板引擎相关推荐

  1. html转义成velocity,改造Velocity模板引擎让$[!]{}输出默认进行html转义,并增加$#{}语法支持不转义输出...

    一直以来在项目中使用Apache Velocity模板引擎作为视图层输出,为了解决XSS漏洞,需要对输出到页面的内容进行HTML转义,我一般采用2种方式实现: 使用过滤器 Filter,在其中进行 H ...

  2. velocity模板引擎帮助

    Velocity用户手册是帮助页面设计者和内容提供者认识Velocity和其简单而功能强大的脚本语言――Velocity模板语言(VTL).在手册上的许多例子,都是用Velocity插入动态的内容到网 ...

  3. velocity模板引擎-vm语法整理

    velocity模板引擎-vm语法整理 模板引擎我目前接触过两次, 第一次是在前后端还未分离时,考虑到部分页面数据比较固定,一定时间内不会变动,这样每次从后台加载数据渲染页面明显会消耗性能以及资源浪费 ...

  4. 使用 Velocity 模板引擎快速生成代码

    Velocity 模板引擎介绍 在现今的软件开发过程中,软件开发人员将更多的精力投入在了重复的相似劳动中.特别是在如今特别流行的 MVC 架构模式中,软件各个层次的功能更加独立,同时代码的相似度也更加 ...

  5. Velocity模板引擎实现通用导出

    Velocity模板引擎实现通用导出 基础配置 在数据库中配置导出sql模板,导出文件名,sheet名,字段对应中文名等.表结构如下 CREATE TABLE `finance_download_co ...

  6. 工具集核心教程 | 第五篇: 利用Velocity模板引擎生成模板代码

    前言 不知道大家有没有这样的感觉,在平时开发中,经常有很多dao.service类中存着很多重复的代码,Velocity提供了模板生成工具,今天我教大家怎么和这些大量的重复代码说再见. 参考项目:ht ...

  7. Velocity模板引擎的简单使用

    一 简介 Velocity 是一个基于 Java 的模板引擎,它允许任何人仅仅简单的使用模板语言来引用由 Java 代码定义的对象,从而实现界面和 Java 代码的分离,使得界面设计人员可以和 Jav ...

  8. Velocity模板引擎

    velocity简介 velocity介绍 Velocity是一个基于Java的模板引擎,可以通过特定的语法获取在java对象的数据,填充到模板中,从而实现界面和java代码的分离 应用场景 Web应 ...

  9. Velocity模板引擎实战:动态生成HTML、Word、Excel等报表

    上篇文章介绍了Velocity的基本用法,文章链接:Java使用 VelocityEngine模板引擎快速生成HTML等各种代码 本篇文章主要针对Velocity的实际应用 先来一个工具类 packa ...

最新文章

  1. 字符串面试题(一)字符串逆序
  2. python-opencv 定位识别读表
  3. 论坛报名 | 人工智能与疫情精准防控
  4. dataset__getitem___PyTorch源码解析与实践(1):数据加载Dataset,Sampler与DataLoader
  5. linux 信号没有被处理方法,[计算机]Linux 信号signal处理机制.doc
  6. SQL2000中@@ERROR的使用提醒
  7. TextArea里Placeholder换行问题
  8. centos7 安装 php-fpm_centos7中如何安装 php-fpm(nginx)
  9. 京东健康上线“新冠病毒”核酸检测 在线预约服务
  10. 即使是菜鸟,也能配置出一个网站
  11. Python菜鸟入门:day02知识分类
  12. linux 查找字母c结尾的内容,linux如何查找以某个字母打头的文件或文件夹 比如,/etc目录下很多文件,我想列出所有以c开头的文件或文件...
  13. python 调用 C++ code
  14. sqlite3 的基本使用 以及封装使用
  15. AutoCAD-线型
  16. 计算机系毕业论文ppt模板,计算机专业答辩PPT模板.ppt
  17. Java歌手评分系统
  18. C语言求x的y次方,fun函数实现x的y次方的计算,main函数中调用fun函数
  19. 使用python做协整模型分析并进行残差检验
  20. Python写入数据到txt文本中

热门文章

  1. 【JVM调优系列】----NewRatio与SurvivorRatio
  2. webhook简单部署
  3. iredmail 邮件服务器搭建
  4. GPSInfoProvider定位
  5. Linux下做双向同步
  6. .Net桌面程序的旗舰--参加亚控科技组态王7.0发布有感
  7. Java JDK 11:现在可以使用所有新功能
  8. 缩小门店、打造智慧供应链,沃尔玛准备这样迎接新零售时代
  9. 如何用工匠精神突破创新?
  10. 高性能服务器架构(一):缓冲策略