通过java生成文件毫无疑问会使用到流,对于流在该文章中不做重点解释。首先我们做一个准备工作,搭建你的项目,采用Freemarker模版技术,首先给大家展示一个Freemarker文件。 预定价格: ${trip.price!'面议'}元 目的地: ${trip.toCity!''} 行程天数:${trip.tripDay!'待定'} 提前预定天数: 建议提前一周报名 出团日期:${trip.toTirpTime} 友谊

模版建好了,我们接下来写一个工具类,通过该工具类生成html文件。FreeMarkerUtil.java 此处我们只列出主要用到的方法。 public static void writeTo(ServletContext context, Mapmap, String templatePath, String templateName, String htmlPath) throws IOException, TemplateException {Configuration freemarkerCfg = new Configuration(); // 设置要解析的模板所在的目录,并加载模板文件freemarkerCfg.setServletContextForTemplateLoading(context, templatePath);freemarkerCfg.setEncoding(Locale.getDefault(), "UTF-8"); // 获取模板,并设置编码方式Template template = freemarkerCfg.getTemplate(templateName);template.setEncoding("UTF-8");File htmlFilel = new File(context.getRealPath("") +File.separator +"html"+File.separator+"channel");if(! htmlFilel.exists()) {htmlFilel.mkdir();}File htmlFile = new File(context.getRealPath("") + File.separator + htmlPath);Writer out = new BufferedWriter(new OutputStreamWriter(new FileOutputStream(htmlFile), "UTF-8")); // 合并数据模型与模板template.process(map, out);out.flush();out.close();}

需要导入的类,这些都在freemarker-2.3.16.jar 包中了: import freemarker.template.Configuration;import freemarker.template.DefaultObjectWrapper;import freemarker.template.Template;import freemarker.template.TemplateException;

接下来就是业务处理了,其实很简单的没有任何的技术含量,这个功能也是在使用Freemarker做模版视图较多使用的,此处为了让学习的人看的明白,业务和控制层都写在一个方法了,容易理解。 public ModelAndView doAdd(HttpServletRequest request,MultipartHttpServletRequest filerequest, Trip trip)throws ParseException {Listfile1 = filerequest.getFiles("file1");Listfile2 = filerequest.getFiles("file2");if (file1.size() > 0) {String titleImg = "";titleImg = uploadImage(request, file1.get(0));if (null != titleImg && !titleImg.equals("")) {trip.setImgUrl(titleImg);}}if (file2.size() > 0) {String titleImg = "";titleImg = uploadImage(request, file2.get(0));if (null != titleImg && !titleImg.equals("")) {trip.setImgUrl2(titleImg);}}trip.setInputTime(new Date());File directory = new File(request.getSession().getServletContext().getRealPath("/")+ "trip");if (!directory.exists()) {directory.mkdirs();}DateFormat format1 = new SimpleDateFormat("yyyyMMddhhmm");String dateStr = format1.format(new Date());String html = "trip" + File.separator + trip.getChannelId() + "-"+ trip.getCityId() + "-" + dateStr + ".html";trip.setUrlStr(html);PageBean pageBean3 = tripService.getTriplist(0, 10);ListtripList = pageBean3.getBeanList();PageBean pageBean2 = newsService.getTripNewslist(1, 10);ListtripNewsList = pageBean2.getBeanList();PageBean pageBean22 = newsService.getTripNews2list(1, 10);ListtripNews2List = pageBean22.getBeanList();Map map = new HashMap();map.put("tripNews2List", tripNews2List);map.put("tripList", tripList);map.put("tripNewsList", tripNewsList);map.put("trip", trip);map.put("base", request.getContextPath());try {FreeMarkerUtil.writeTo(request.getSession().getServletContext(),map, "/templates", "trip.ftl", html);} catch (IOException e) {// TODO Auto-generated catch blocke.printStackTrace();} catch (TemplateException e) {// TODO Auto-generated catch blocke.printStackTrace();}tripService.save(trip);return new ModelAndView("redirect:/trip/page.shtml?page_now=1");}

好了,这样你就可以写你的静态网站了。

也许有人现在也不知道生成静态的作用到底是什么呢?

1、访问的时候不需要在操作数据库了。

2、对于搜索引擎来说html静态页面更加的友好。

3、访问速度变的很快。

等等,大家自己感受一下。有需要可留言要源码demo。

本文地址:http://www.osblog.net/code/117.html

本条技术文章来源于互联网,如果无意侵犯您的权益请点击此处反馈版权投诉

本文系统来源:php中文网

freemarker自动生成html页面,利用Freemarker生成html静态页面_html/css_WEB-ITnose相关推荐

  1. 在网站插入微博,静态的网页出的来,到服务器出不来,新浪微博生成的微博秀代码,在静态页面能显示小弟我放到自己的.net页面里就显示不了...

    新浪微博生成的微博秀代码,在静态页面能显示我放到自己的.net页面里就显示不了 上面代码中至的代码是新浪微博秀生成的,我把引用到我的页面里,运行网页始终显示空白,在桌面建一个文本文档把代码拷贝进去,改 ...

  2. matlab 生成 word 表格,利用MATLAB生成Word文档.doc

    利用MATLAB生成Word文档 function ceshi_Word %利用MATLAB生成Word文档 % ceshi_Word % % Copyright 2009 - 2010 xiezhh ...

  3. 易买网HTML静态页面,易买网(前台+后台的静态页面)

    [实例简介] [实例截图] [核心代码] └─易买网 │  验证码.html │ ├─My97DatePicker │  │  calendar.js │  │  WdatePicker.js │  ...

  4. 静态html页面传递参数,javascript实现静态页面之间的传值

    静态页面之间传值有多种方法:1.通过url 2.通过cookie 3.window.open传值 4.HTML5 localStorage传值 方法一:url传值 主要原理是:通过GET方法然后获取U ...

  5. 服务器静态页面分享微信,JS中静态页面如何实现微信分享功能

    JS中静态页面如何实现微信分享功能 发布时间:2021-07-06 11:09:02 来源:亿速云 阅读:65 作者:小新 这篇文章主要介绍了JS中静态页面如何实现微信分享功能,具有一定借鉴价值,感兴 ...

  6. php生成wsdl文件,利用nusoap生成wsdl文件

    第一步,首先下载 nusoap.php 下载地址  http://sourceforge.net/projects/nusoap/files/nusoap/ server.php  文件 // Cre ...

  7. java 生成随机数(利用Random生成任意范围的随机数)

    目录 一.为什么需要这种方法? 二.方法思路 1.头尾相减 2.尾巴+1 3.最终的结果加上初始的首个数字 代码 运行结果 一.为什么需要这种方法? Random函数只能限制生成随机数的区间的末尾是多 ...

  8. html用表格做个人主页页面,利用HTML的表格进行页面布局

    在DIV+CSS布局出现前,基本上所用的网站都使用table来进行布局.因为table布局很简单,但是table布局不灵活且代码很多.下面将介绍怎样使用table来进行布局.实例:我们来布局一个常见网 ...

  9. html页面送值转换,在静态页面html中跳转传值

    在html中通过"?"传值--------静态传值 在跳转到的页面index2.html中接收----var name=UrlParm.parm("name") ...

  10. html静态页面跳转传值,在静态页面html中跳转传值

    在html中通过"?"传值--------静态传值 在跳转到的页面index2.html中接收----var name=UrlParm.parm("name") ...

最新文章

  1. html显示本地磁盘 图片,手把手教你为本地磁盘增添背景图片(图解)
  2. python画出心形图-python画出心形图
  3. windows扩展C盘空间
  4. 为什么函数式编程很重要:不一样的白板图
  5. 只能在测试中注射吗?
  6. Python文本转化语音模块大比拼,看看青铜与王者的差别!
  7. 业务监控系统如何做,一起来看看如何使用Statsd+Graphite+Grafana搭建业务监控系统
  8. springboot多环境配置_编辑 SpringBoot|第五章:多环境配置
  9. iOS工程师常用的命令行命令总结
  10. android遥控器用什么测试,Android编程调用红外线遥控功能示例
  11. 如何安装Vmware ESXi 6.7(图文介绍)
  12. Android企业级项目实战——基础篇(系列文章)
  13. 天正结构TAsd8.2 天正规划与景观设计软件7.5 及注册机
  14. CCF CSP认证201509-1数列分段
  15. 用MySQl创建供应商标s_建立一个供应商、零件数据库。其中供应商表S(Sno - 问答库...
  16. 两台计算机如何连接一个网络打印机共享,打印机怎么连接2台电脑?两台或多台电脑连接共享打印机操作方法...
  17. C++ 关于ShowWindow()的疑问
  18. 计算机网络——第一章 计算机网络体系结构
  19. 数据分析之实战项目——电商用户行为分析【python】
  20. 沃尔玛收购眼镜AR试戴公司Memomi,拓展眼镜电商业务

热门文章

  1. 论文笔记_S2D.63_2020-ICRA_LiStereo:从雷达和双目立体图像生成稠密深度图
  2. 论文笔记_S2D.34-2015-CVPR_从单张图像进行深度估计的深度卷积神经场
  3. Deep Convolutional Network Cascade for Facial Point Detection论文算法解析
  4. 有时我们经常碰到某目录下文件名乱码的情况,convmv可以批量转换文件名编码。...
  5. PIE SDK组件式开发综合运用示例
  6. c++ 怎么输出保留2位小数的浮点数
  7. getHibernateTemplate() VS getSession()
  8. [转]Http Message结构学习总结
  9. WinMM.dll 函数汇总
  10. 基于强化学习和析取图模型的统一调度框架