引入的jar包:
1 import org.apache.velocity.Template; 2 import org.apache.velocity.VelocityContext; 3 import org.apache.velocity.app.Velocity; 4 import org.apache.velocity.app.VelocityEngine; 5 import org.apache.velocity.tools.generic.DateTool; 6 import org.apache.velocity.tools.generic.NumberTool;
jar包可以去官网下载
http://velocity.apache.org/engine/devel/
样例代码:
1 /** 2 * 生成vm 3 * @param vmpackage vm所在的包名 4 * @param vmname 5 * @param listname 6 * @param objects 7 * @return 8 * @throws Exception 9 */ 10 public static String generateVm(String vmpackage, String vmname, String listname, List<? extends Object> objects) throws Exception{ 11 if(objects.size()>0){ 12 Properties p = new Properties(); 13 String classpath = VelocityUtils.class.getResource("/").getPath();//取得src的路径 14 p.setProperty(VelocityEngine.FILE_RESOURCE_LOADER_PATH, classpath + vmpackage); 15 //设置velocity的编码 16 p.setProperty(Velocity.ENCODING_DEFAULT, "UTF-8"); 17 p.setProperty(Velocity.INPUT_ENCODING, "UTF-8"); 18 p.setProperty(Velocity.OUTPUT_ENCODING, "UTF-8"); 19 //初始化并取得Velocity引擎 20 VelocityEngine ve = new VelocityEngine(); 21 ve.init(p); 22 //取得velocity的模版 23 Template t = null; 24 t = ve.getTemplate(vmname); 25 //取得velocity的上下文context 26 VelocityContext context = new VelocityContext(); 27 context.put("number", new NumberTool()); 28 context.put("date", new DateTool()); 29 context.put(listname, objects); 30 //输出流 31 StringWriter writer = new StringWriter(); 32 //转换输出 33 t.merge(context, writer); 34 return writer.toString(); 35 }else{ 36 return null; 37 } 38 }
上面函数调用:
1 String vmpagckage = "com/cpinfo/his/template/emr/"; 2 String vmname = "partogram_detail_infos.vm"; 3 String vm = VelocityUtils.generateGridVm(vmpagckage, vmname, "bs", ems); 4 5 response.setContentType("text/xml;charset=utf-8"); 6 PrintWriter pw = response.getWriter(); 7 pw.print(vm); 8 pw.flush(); 9 pw.close();
模版文件的内容例子:
1 <?xml version="1.0" encoding="UTF-8"?> 2 <rows> 3 #foreach($b in $bs) 4 <row id="$b.detailinfoid"> 5 <cell title="$!date.format(‘yyyy-MM-dd HH:mm‘,$b.time)">$!date.format(‘HH:mm‘,$b.time)</cell> 6 <cell>$!number.format($b.gongkoukaida)</cell> 7 <cell>$!number.format($b.xianluxiajiang)</cell> 8 #if($b.taiermianchu==1) 9 <cell>是</cell> 10 #else 11 <cell>否</cell> 12 #end 13 <cell>$!b.taixinyin</cell> 14 <cell>$!b.mailv</cell> 15 #if($b.xueyagao || $b.xueyadi) 16 <cell>$!b.xueyagao/$!b.xueyadi</cell> 17 #else 18 <cell></cell> 19 #end 20 <cell>$!b.teshuzhiliao</cell> 21 <cell>$!b.qianming</cell> 22 <cell><![CDATA[<img src="img/emr/del_package.png" alt="删除" style="cursor:pointer;" onclick="javascript:delDetailInfo(‘$!b.detailinfoid‘)"/>]]></cell> 23 </row> 24 #end 25 </rows>
模版文件的语法 等可以去官网看文档。
时间: 2024-11-10 00:13:08