velocity 模板引擎

原创 2016年08月29日 15:43:01

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 {
	@Test
	public 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't
  see this text because the Velocity Templating Engine will
  ignore 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类似,前者引入的是普通文本,后者引入的是含有指令的文本,并作解析.

3.9 控制不存在的变量

变量前面加个叹号, 若该变量不存在, 该位置留空.
如 $!name .

4.IDE插件

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

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


(一)模板引擎之velocity介绍

什么是velocity? Velocity是一个基于java的模板引擎(template engine)。可以使用简单的模板语言(templatelanguage)来引用由java代码定...
  • lovesummerforever
  • lovesummerforever
  • 2015年08月10日 00:02
  • 5921

Velocity模板引擎入门

Velocity模板引擎入门 博客分类: 模版引擎   类似于PHP中的Smarty,Velocity是一个基于java的模板引擎(template engine)。它允许任何人仅...
  • lang_man_xing
  • lang_man_xing
  • 2014年05月07日 13:00
  • 1639

Velocity是一个基于java的模板引擎

很多人下载了EasyJWeb的开源应用示例,但是对动态页面模板文件中的标签使用不是很熟悉,这里简单介绍一下。EasyJWeb特定把视图限定为Velocity,因为我们觉得在Velocity在表现上从可...
  • u012402926
  • u012402926
  • 2016年06月21日 07:35
  • 1039

Spring MVC Velocity模板引擎

Spring  MVC  Velocity模板引擎 项目完成时,结构如下: 各个文件的源码 webtest\src\main\webapp\WEB-INF\web.xml: ...
  • zjml2412
  • zjml2412
  • 2015年08月29日 21:41
  • 1042

Jsp、Velocity、FreeMarker这三种模板引擎的区别

模板引擎是Web方向的重要方向之一,收集了一下网络上关于JSP、Velocity、FreeMarker的应用,将几种模板引擎技术进行简要的介绍,希望大家能够得到自己想要的结果。 JSP 优点: 1...
  • wanghjbuf
  • wanghjbuf
  • 2016年07月24日 21:58
  • 3926

JAVA velocity模板引擎使用实例

velocity使用1.7版本。 在win7下使用intelliJ IDEA建立一基于tomcat的web app项目,命名为todo_web,设置path为/todo,导入velocity相关jar...
  • xyw591238
  • xyw591238
  • 2017年02月28日 14:31
  • 1094

基于java的Velocity模板匹配引擎

Velocity是一个基于java的模板引擎(模板引擎的作用就是取得数据并加以处理,最后显示出数据)。 它允许任何人仅仅简单的使用模板语言来引用由java代码定义的对象。 主要应用在:  ...
  • u010469430
  • u010469430
  • 2013年10月08日 11:21
  • 3956

Velocity基于java的模板引擎(template engine)

Velocity是一个基于java的模板引擎(template engine)。它允许任何人仅仅简单的使用模板语言(template language)来引用由java代码定义的对象。  当Ve...
  • kingice1014
  • kingice1014
  • 2016年08月03日 11:00
  • 1253

Velocity 模板引擎介绍

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

【推荐】Springboot使用velocity模板引擎

最爽的Web组合开发就是Intellij IDEA + Maven + Spring Boot + Scala + Velocity + Boostrap + jQuery了. Spring Boo...
  • ztx114
  • ztx114
  • 2017年09月20日 10:16
  • 445
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:velocity 模板引擎
举报原因:
原因补充:

(最多只允许输入30个字)