热门标签 | HotTags
当前位置:  开发笔记 > 前端 > 正文

使用freemarker生成html、doc文件【原创】_MySQL

使用freemarker生成html、doc文件【原创】
bitsCN.com

语言:java

功能:使用freemarker生成html、doc

1、生成html

 1 public void updateuseFreemarker2html(String abdkId) { 2             // 要填入模本的数据文件 3                 Session session = sessionFactory.getCurrentSession(); 4                 String hql = "from AbnmDktranssupervision as abnmDktranssupervision "; 5                 AbnmDktranssupervision result = null; 6                 try { 7                     // 根据id用hql语言获取一个对象的数据 8                     result = (AbnmDktranssupervision) session.get( 9                             AbnmDktranssupervision.class, Integer.parseInt(abdkId));10                 } catch (Exception e) {11                     e.printStackTrace();12                 }13                 14                 15                 16                 // 设置模本装置方法和路径,FreeMarker支持多种模板装载方法。可以重servlet,classpath,数据库装载,17                 // 这里我们的模板是放在cn.edu.bnu.land.common包下面18                 cOnfiguration= new Configuration();19                 configuration.setEncoding(Locale.CHINA, "utf-8");  21                 configuration.setClassForTemplateLoading(this.getClass(),22                         "/cn/edu/bnu/land/common");23                 Template t = null;24 25                 try {26                     // freemarker2html.ftl为要装载的html模板27                     t = configuration.getTemplate("freemarker2html.ftl");28                     t.setEncoding("utf-8");29                 } catch (IOException e) {30                     e.printStackTrace();31                 }32                 33 34                 // 输出文档路径及名称35                 Calendar ca = Calendar.getInstance();36                 Date date = ca.getTime();37                 java.text.DateFormat format2 = new java.text.SimpleDateFormat(38                         "yyyyMMddhhmmss");39                 String dateString = format2.format(date);40                 //文件名称41                 String m_fileName = result.getTbbh() + "_" + dateString + ".html";42                 //43                 String realPath=this.getClass().getClassLoader().getResource("/").getPath();44                 System.out.println(realPath);45                 int pos=realPath.indexOf("/WEB-INF");46                 System.out.println(pos);47                 realPath=realPath.substring(0, pos);48                 realPath=realPath+"/Upload/abnmTransSupHtml/"; 49                 System.out.println(realPath);50                 String filePath = realPath +m_fileName;51                 result.setAbdkFilepath("/tdlzJGXT/Upload/abnmTransSupHtml/"+m_fileName);53 54 55                 File outFile = new File(filePath);56                 Writer out = null;57                 try {58                     out = new BufferedWriter(new OutputStreamWriter(59                             new FileOutputStream(outFile), "utf-8"));60                 } catch (Exception e1) {61                     e1.printStackTrace();62                 }63 64                 try {65                     t.process(result, out);66                     out.close();67                 } catch (TemplateException e) {68                     e.printStackTrace();69                 } catch (IOException e) {70                     e.printStackTrace();71                 }        72     }73 74 }

freemarker3html.ftl

 1    2       3    4      5    6     7      8       9   10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 
图斑编号:${tbbh!"无"}
图斑面积:${tbmj!"无"}
项目编号:${xmbh!"无"}
座落单位名称:${zldwmc!"无"}
地类名称:${dlmc!"无"}
行政区代码:${xzqdm!"无"}
转让方:${abdkSeller!"无"}
买入方:${abdkBuyer!"无"}
坡度:${abdkSlope!"无"}
坡度方差:${abdkSlopevariance!"无"}
交易前中心点x坐标:${abdkBx!"无"}
交易前中心点y坐标:${abdkBy!"无"}
交易后中心点x坐标:${abdkAx!"无"}
交易后中心点y坐标:${abdkAy!"无"}
交易前价格:${abdkBprice!"无"}
交易后面积:${abdkAarea!"无"}
交易后价格:${abdkAprice!"无"}
处理意见:${abdkOpinion!"无"}
是否处理:${abdkIssolved!"无"}
风险等级:${abdkRisklevel!"无"}
预警时间:${abdkWarningtime!"无"}
是否异常:${abdkIsnormal!"无"}
稻谷产量:${dgcl!"无"}
稻谷均价:${dgjj!"无"}
存储位置:${abdkFilepath!"无"}
36 37    38

效果图:

2、生成doc

 1     // ues freemarker+xml to doc 2     public void updateuseFreemarker2doc(String abdkId) { 3         // 要填入模本的数据文件 4         Session session = sessionFactory.getCurrentSession(); 5         String hql = "from AbnmDktranssupervision as abnmDktranssupervision "; 6         AbnmDktranssupervision result = null; 7         try { 8             // System.out.println(hql); 9             result = (AbnmDktranssupervision) session.get(10                     AbnmDktranssupervision.class, Integer.parseInt(abdkId));11         } catch (Exception e) {12             e.printStackTrace();13         }14         15         16         17         // 设置模本装置方法和路径,FreeMarker支持多种模板装载方法。可以重servlet,classpath,数据库装载,18         // 这里我们的模板是放在com.havenliu.document.template包下面19         cOnfiguration= new Configuration();20         configuration.setDefaultEncoding("utf-8");21         configuration.setClassForTemplateLoading(this.getClass(),22                 "/cn/edu/bnu/land/common");23         Template t = null;24 25         try {26             // test.ftl为要装载的模板27             t = configuration.getTemplate("freemarker2doc.ftl");28             t.setEncoding("utf-8");29         } catch (IOException e) {30             e.printStackTrace();31         }32         33 34         // 输出文档路径及名称35         Calendar ca = Calendar.getInstance();36         Date date = ca.getTime();37         java.text.DateFormat format2 = new java.text.SimpleDateFormat(38                 "yyyyMMddhhmmss");39         String dateString = format2.format(date);40         41         //文件名称42         String m_fileName = result.getTbbh() + "_" + dateString + ".doc";43         //44         String realPath=this.getClass().getClassLoader().getResource("/").getPath();45         //System.out.println(realPath);46         int pos=realPath.indexOf("/WEB-INF");47         //System.out.println(pos);48         realPath=realPath.substring(0, pos);49         realPath=realPath+"/Upload/abnmTransSupDoc/"; 50         //System.out.println(realPath);51         String filePath = realPath +m_fileName;52         result.setAbdkFilepath("/tdlzJGXT/Upload/abnmTransSupDoc/"+m_fileName);53         54         55         56 57 58         File outFile = new File(filePath);59         Writer out = null;60         try {61             out = new BufferedWriter(new OutputStreamWriter(62                     new FileOutputStream(outFile), "utf-8"));63         } catch (Exception e1) {64             e1.printStackTrace();65         }66 67         try {68             t.process(result, out);69             out.close();70         } catch (TemplateException e) {71             e.printStackTrace();72         } catch (IOException e) {73             e.printStackTrace();74         }75 76     }

freemarker2doc.ftl

 1 图斑编号:${tbbh!"无"} 2 图斑面积:${tbmj!"无"} 3 项目编号:${xmbh!"无"} 4 座落单位名称:${zldwmc!"无"} 5 地类名称:${dlmc!"无"} 6 行政区代码:${xzqdm!"无"} 7 转让方:${abdkSeller!"无"} 8 买入方:${abdkBuyer!"无"} 9 坡度:${abdkSlope!"无"}10 坡度方差:${abdkSlopevariance!"无"}11 交易前中心点x坐标:${abdkBx!"无"}12 交易前中心点y坐标:${abdkBy!"无"}13 交易后中心点x坐标:${abdkAx!"无"}14 交易后中心点y坐标:${abdkAy!"无"}15 交易前价格:${abdkBprice!"无"}16 交易后面积:${abdkAarea!"无"}17 交易后价格:${abdkAprice!"无"}18 处理意见:${abdkOpinion!"无"}19 是否处理:${abdkIssolved!"无"}20 风险等级:${abdkRisklevel!"无"}21 预警时间:${abdkWarningtime!"无"}22 是否异常:${abdkIsnormal!"无"}23 稻谷产量:${dgcl!"无"}24 稻谷均价:${dgjj!"无"}25 存储位置:${abdkFilepath!"无"}

效果:

bitsCN.com
推荐阅读
  • VScode格式化文档换行或不换行的设置方法
    本文介绍了在VScode中设置格式化文档换行或不换行的方法,包括使用插件和修改settings.json文件的内容。详细步骤为:找到settings.json文件,将其中的代码替换为指定的代码。 ... [详细]
  • 本文介绍了使用AJAX的POST请求实现数据修改功能的方法。通过ajax-post技术,可以实现在输入某个id后,通过ajax技术调用post.jsp修改具有该id记录的姓名的值。文章还提到了AJAX的概念和作用,以及使用async参数和open()方法的注意事项。同时强调了不推荐使用async=false的情况,并解释了JavaScript等待服务器响应的机制。 ... [详细]
  • android listview OnItemClickListener失效原因
    最近在做listview时发现OnItemClickListener失效的问题,经过查找发现是因为button的原因。不仅listitem中存在button会影响OnItemClickListener事件的失效,还会导致单击后listview每个item的背景改变,使得item中的所有有关焦点的事件都失效。本文给出了一个范例来说明这种情况,并提供了解决方法。 ... [详细]
  • 本文讨论了Alink回归预测的不完善问题,指出目前主要针对Python做案例,对其他语言支持不足。同时介绍了pom.xml文件的基本结构和使用方法,以及Maven的相关知识。最后,对Alink回归预测的未来发展提出了期待。 ... [详细]
  • 在说Hibernate映射前,我们先来了解下对象关系映射ORM。ORM的实现思想就是将关系数据库中表的数据映射成对象,以对象的形式展现。这样开发人员就可以把对数据库的操作转化为对 ... [详细]
  • 本文介绍了在SpringBoot中集成thymeleaf前端模版的配置步骤,包括在application.properties配置文件中添加thymeleaf的配置信息,引入thymeleaf的jar包,以及创建PageController并添加index方法。 ... [详细]
  • Java验证码——kaptcha的使用配置及样式
    本文介绍了如何使用kaptcha库来实现Java验证码的配置和样式设置,包括pom.xml的依赖配置和web.xml中servlet的配置。 ... [详细]
  • Monkey《大话移动——Android与iOS应用测试指南》的预购信息发布啦!
    Monkey《大话移动——Android与iOS应用测试指南》的预购信息已经发布,可以在京东和当当网进行预购。感谢几位大牛给出的书评,并呼吁大家的支持。明天京东的链接也将发布。 ... [详细]
  • 本文介绍了Java工具类库Hutool,该工具包封装了对文件、流、加密解密、转码、正则、线程、XML等JDK方法的封装,并提供了各种Util工具类。同时,还介绍了Hutool的组件,包括动态代理、布隆过滤、缓存、定时任务等功能。该工具包可以简化Java代码,提高开发效率。 ... [详细]
  • 本文讨论了在Spring 3.1中,数据源未能自动连接到@Configuration类的错误原因,并提供了解决方法。作者发现了错误的原因,并在代码中手动定义了PersistenceAnnotationBeanPostProcessor。作者删除了该定义后,问题得到解决。此外,作者还指出了默认的PersistenceAnnotationBeanPostProcessor的注册方式,并提供了自定义该bean定义的方法。 ... [详细]
  • eclipse学习(第三章:ssh中的Hibernate)——11.Hibernate的缓存(2级缓存,get和load)
    本文介绍了eclipse学习中的第三章内容,主要讲解了ssh中的Hibernate的缓存,包括2级缓存和get方法、load方法的区别。文章还涉及了项目实践和相关知识点的讲解。 ... [详细]
  • ZSI.generate.Wsdl2PythonError: unsupported local simpleType restriction ... [详细]
  • XML介绍与使用的概述及标签规则
    本文介绍了XML的基本概念和用途,包括XML的可扩展性和标签的自定义特性。同时还详细解释了XML标签的规则,包括标签的尖括号和合法标识符的组成,标签必须成对出现的原则以及特殊标签的使用方法。通过本文的阅读,读者可以对XML的基本知识有一个全面的了解。 ... [详细]
  • HDFS2.x新特性
    一、集群间数据拷贝scp实现两个远程主机之间的文件复制scp-rhello.txtroothadoop103:useratguiguhello.txt推pushscp-rr ... [详细]
  • Android系统移植与调试之如何修改Android设备状态条上音量加减键在横竖屏切换的时候的显示于隐藏
    本文介绍了如何修改Android设备状态条上音量加减键在横竖屏切换时的显示与隐藏。通过修改系统文件system_bar.xml实现了该功能,并分享了解决思路和经验。 ... [详细]
author-avatar
湛江耳鼻喉医院196_991
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有