Velocity模版使用
<!-- https://mvnrepository.com/artifact/org.apache.velocity/velocity -->
<dependency>
<groupId>org.apache.velocity</groupId>
<artifactId>velocity</artifactId>
<version>1.7</version>
</dependency>
http://mvnrepository.com/artifact/org.apache.velocity
<!-- https://mvnrepository.com/artifact/org.apache.velocity/velocity-tools -->
<dependency>
<groupId>org.apache.velocity</groupId>
<artifactId>velocity-tools</artifactId>
<version>2.0</version>
</dependency>
引入的jar包:
import org.apache.velocity.Template;
import org.apache.velocity.VelocityContext;
import org.apache.velocity.app.Velocity;
import org.apache.velocity.app.VelocityEngine;
import org.apache.velocity.tools.generic.DateTool;
import org.apache.velocity.tools.generic.NumberTool;
jar包可以去官网下载
http://velocity.apache.org/engine/devel/
样例代码:
/**
* 生成vm
* @param vmpackage vm所在的包名
* @param vmname
* @param listname
* @param objects
* @return
* @throws Exception
*/
public static String generateVm(String vmpackage, String vmname, String listname, List<? extends Object> objects) throws Exception{
if(objects.size()>0){
Properties p = new Properties();
String classpath = VelocityUtils.class.getResource("/").getPath();//取得src的路径
p.setProperty(VelocityEngine.FILE_RESOURCE_LOADER_PATH, classpath + vmpackage);
//设置velocity的编码
p.setProperty(Velocity.ENCODING_DEFAULT, "UTF-8");
p.setProperty(Velocity.INPUT_ENCODING, "UTF-8");
p.setProperty(Velocity.OUTPUT_ENCODING, "UTF-8");
//初始化并取得Velocity引擎
VelocityEngine ve = new VelocityEngine();
ve.init(p);
//取得velocity的模版
Template t = null;
t = ve.getTemplate(vmname);
//取得velocity的上下文context
VelocityContext context = new VelocityContext();
context.put("number", new NumberTool());
context.put("date", new DateTool());
context.put(listname, objects);
//输出流
StringWriter writer = new StringWriter();
//转换输出
t.merge(context, writer);
return writer.toString();
}else{
return null;
}
}
上面函数调用:
String vmpagckage = "com/cpinfo/his/template/emr/";
String vmname = "partogram_detail_infos.vm";
String vm = VelocityUtils.generateGridVm(vmpagckage, vmname, "bs", ems); response.setContentType("text/xml;charset=utf-8");
PrintWriter pw = response.getWriter();
pw.print(vm);
pw.flush();
pw.close();
模版文件的内容例子:
<?xml version="1.0" encoding="UTF-8"?>
<rows>
#foreach($b in $bs)
<row id="$b.detailinfoid">
<cell title="$!date.format('yyyy-MM-dd HH:mm',$b.time)">$!date.format('HH:mm',$b.time)</cell>
<cell>$!number.format($b.gongkoukaida)</cell>
<cell>$!number.format($b.xianluxiajiang)</cell>
#if($b.taiermianchu==1)
<cell>是</cell>
#else
<cell>否</cell>
#end
<cell>$!b.taixinyin</cell>
<cell>$!b.mailv</cell>
#if($b.xueyagao || $b.xueyadi)
<cell>$!b.xueyagao/$!b.xueyadi</cell>
#else
<cell></cell>
#end
<cell>$!b.teshuzhiliao</cell>
<cell>$!b.qianming</cell>
<cell><![CDATA[<img src="img/emr/del_package.png" alt="删除" style="cursor:pointer;" onclick="javascript:delDetailInfo('$!b.detailinfoid')"/>]]></cell>
</row>
#end
</rows>
模版文件的语法 等可以去官网看文档。
Velocity模版使用的更多相关文章
- Spring整合Velocity模版引擎
1. 首先通过pom.xml自动加载velocity扩展包到工程: <dependency> <groupId>velocity</groupId> <art ...
- Java安全之Velocity模版注入
Java安全之Velocity模版注入 Apache Velocity Apache Velocity是一个基于Java的模板引擎,它提供了一个模板语言去引用由Java代码定义的对象.它允许web 页 ...
- Velocity模版引擎使用总结
Velocity是一个基于java的模板引擎.它允许任何人仅仅简单的使用模板语言来引用由java代码定义的对象. 当Velocity应用于web开发时,界面设计人员可以和java程序开发人员同步开发一 ...
- framMaker、Velocity模版引擎
1.一种模板文件,可以自动加载数据到模板里面展现. 类似:Velocity 2.使用场景 1.web开发模式 WEB-INF/view/vm 在互联网公司的开发都是基于vm的开发,其次就是使用JS的框 ...
- Velocity模板引擎入门
类似于PHP中的Smarty,Velocity是一个基于Java的模板引擎(template engine).它允许任何人仅仅简单的使用模板语言(template language)来引用由java代 ...
- velocity 显示List和Map方法
一.遍历个map类型 1.先看后台java程序Java代码 Map<String,String> paramValues=new HashMap<String, String ...
- 【转】velocity 显示List和Map方法
一.遍历个map类型 1.先看后台java程序Java代码 Map<String,String> paramValues=new HashMap<String, String ...
- 模板引擎:Velocity&FreeMarker(转)
Velocity,名称字面翻译为:速度.速率.迅速,用在Web开发里,用过的人可能不多,大都基本知道和在使用Struts,到底Velocity和Struts(Taglib和Tiles)是如何联系?在技 ...
- Velocity资源
这里有非常多的资源和示例提供给程序员,我们推荐您查阅我们提供的示例.文档和源代码.下面是一些非常有用的资源列表: 用户和开发者社区:可以通过mail-lists加入我们.mail-lists网页地址: ...
随机推荐
- js获取url参数方法
function GetQueryString(name) { var reg = new RegExp("(^|&)" + name + "=([^&] ...
- PHP关于 []
在一个表格里,提交时,名字部分加一个[],表示数组,这样,存在多个同样名字的name.前面的value不会替代后面value,如下面 <td><input name="so ...
- 调整图像的亮度和对比度—opencv
1.理论基础 两个参数 和 一般称作 增益 和 偏置 参数.我们往往用这两个参数来分别控制 对比度 和 亮度 . 你可以把 看成源图像像素,把 看成输出图像像素.这样一来,上面的式子就能写得更 ...
- linux c 调用子文件函数
今天在学习初级linux c的时候遇到了如下问题:通过主函数调用同路径下的子文件函数调用失败.博主是这样一一解决的: 首先:hello.c: hello.c: #include<bool.c&g ...
- python基础之内置函数补充、匿名函数、递归函数
内置函数补充 python divmod()函数:把除数和余数运算结果结合起来,返回一个包含商和余数的元组(a // b, a % b) 语法: 1 divmod(a, b) #a.b为数字,a为除数 ...
- 9 10mins的投票功能
1.投票的原理 2.投票的数据结构设计 (1)准备工作 导入detail页面 配置静态文件 <link rel="stylesheet" href="../stat ...
- Android ANR详解
如何避免KeyDispatchTimeout 1:UI线程尽量只做跟UI相关的工作 2:耗时的工作(比如数据库操作,I/O,连接网络或者别的有可能阻碍UI线程的操作)把它放入单独的线程处理 3:尽量用 ...
- Android stadio 模板 liveTemplate不管用
今天自己弄了模板,发现不生效.后来才知道要在下面设置在哪里应用:如下图: Android satdio 制作自己的todo 有时候,别人都使用todo,使得自己个人的todo不好用了.那么怎么弄?自己 ...
- 使用阿里开源工具 TProfiler 在海量业务代码中精确定位性能代码 (jvm性能调优)
技术交流群:233513714 本文是<JVM 性能调优实战之:一次系统性能瓶颈的寻找过程> 的后续篇,该篇介绍了如何使用 JDK 自身提供的工具进行 JVM 调优将 TPS 由 2.5 ...
- 洛谷P1331 海战
海战 题目链接 这还是一道联通块的题,只是需要判断是否存在以下四种情况: o. .o oo oo oo oo o. .o 如果存在就是Bad placement. 要注意标记以下,不然会出现多次输出B ...