Velocity使用

需求:
将candiate数据生成一个RTF 文件供用户下载
解决方案:

  1. 使用itext 插件生成(需要一行一行的写入, 设置格式麻烦的不行) 果断放弃。。。
  2. 使用模板生成字节流,最终写入文件

官网:http://velocity.apache.org

Velocity是一个基于Java的模板引擎。它允许任何人使用简单而强大的模板语言来引用Java代码中定义的对象。

当Velocity用于Web开发时,Web设计人员可以与Java程序员并行工作,以根据模型 - 视图 - 控制器(MVC)模型开发Web站点,这意味着网页设计人员可以专注于创建一个看起来很好的站点,程序员可以专注于编写一流的代码。Velocity将Java代码与网页分开,使网站在其生命周期内更加可维护,并为Java Server Pages(JSP)或PHP提供了可行的替代方案。

Velocity的功能远远超出了网络的范围; 例如,它可以用于从模板生成SQL,PostScript和XML。它可以用作生成源代码和报告的独立实用程序,也可以用作其他系统的集成组件。例如,Velocity为各种Web框架提供模板服务,使他们能够根据真正的MVC模型,使视图引擎促进Web应用程序的开发。

Velocity提供的project

  1. Velocity Engine——这是实现所有工作的实际模板引擎。(目前的版本是1.7)

  2. Velocity Tools——项目包含使用Velocity引擎构建Web和非Web应用程序的工具和其他有用的基础设施。在此找到例如Struts集成的代码或独立的VelocityViewServlet。(目前的版本是2.0)

使用
3. 导入Velocity 依赖
4. 新建一个test.vm

<tbody>
	#foreach ($element in $testList)
		<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>
  1. code
@Test
	public void velocityTestFun() {
		// 初始化模板引擎
		VelocityEngine ve = new VelocityEngine();
		// 配置引擎上下文对象
		VelocityContext ctx = new VelocityContext();
		ctx.put("testList", genData());
		// 加载模板文件
		Template template = ve.getTemplate("/WebContent/WEB-INF/template/test.vm");
		StringWriter sw = new StringWriter();
		// 渲染模板
		template.merge(ctx, sw);
		System.out.print(sw.toString());
	}

Velocity 语法详解:

参考: https://www.jianshu.com/p/4e28c5b2804c
https://blog.csdn.net/garfielder007/article/details/63365908

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值