JavaWeb(14) 页面静态化之使用freemarker模板生成一个html静态页面
题外话:
页面静态化(展示数据从JSP页面变成HTML页面)实现方式-->模板技术 从本质上来讲,模板技术是一个占位符动态替换技术。一个完整的模板技术需要四个元素:①模板语言(使用的语法) ②包含模板语言的模板文件(.ftl结尾) ③模板引擎(jar包) ④拥有动态数据的数据对象
FreeMarker是一款模板引擎:即一种基于模板和要改变的数据,并用来生成输出文本(HTML网页,电子邮件,配置文件,源代码等)的通用工具。它不是面向最终用户的,而是一个Java类库,是一款程序员可以嵌入他们所开发产品的组件。
静态页面在什么时候生成??
数据新增,修改的时候会生成一个新的静态化页面, 在数据删除的时候会将原有的静态化页面删除
如何使用freemarker模板生成一个html页面呢???
注意:导入freemarker的jar包
点击下载FreeMarker文档+jar包资源 密码:2ndt
/*** 1.创建配置实例* 2.获得模板* 3.创建数据模型[数据模型可以是List、Map对象 注意:Map类型的key必须是String类型]* 4.将模板和数据模型合并* @author 郑清*/
public class FreeMarkerTest {@Testpublic void testCreateHtml() throws Exception{//①创建配置对象Configuration cfg = new Configuration(Configuration.VERSION_2_3_28);//注意:这里需要传递一个版本File f = new File("E:/eclipse-workspace/JavaWeb_workspace/JavaWeb/src/main/webapp/test");//②读取模板文件夹cfg.setDirectoryForTemplateLoading(f);//设置要加载的模板文件的路径//③设置模板的编码格式cfg.setDefaultEncoding("UTF-8");//④获取模板对象Template template = cfg.getTemplate("hello.ftl");//hello.ftl是模板名称//⑤创建数据模型(这里使用map类型) --[数据模型可以是List、Map对象 注意:Map类型的key必须是String类型]HashMap<String, Object> map = new HashMap<>();map.put("username", "郑清");HashMap<String, Object> map2 = new HashMap<>();//map2存储的是a标签的href和显示名字map2.put("href","https://www.baidu.com");map2.put("name","百度");map.put("a", map2);//⑥将模板和数据模型合并 --> 输出模板,生成文件PrintWriter pw = new PrintWriter(new File(f, "hello.html"));template.process(map, pw);//合并 map:数据模型 pw:输出流对象pw.close();//关闭流}}
${key } --> 获取数据模型中的对应值
当数据模型为对象时:
浏览器运行效果:
FreeMarker中的基本语法: (更多语法在FreeMarker文档中查看!!)
①判断:
<#if 条件></#if>
</#esleif 条件>
②遍历:
<#list 数据 as 变量>
${变量 }
</#list>
③遍历map: map?keys --> 获取map中的key
<#list map?keys as 变量>
输出key:${变量}
输出map的值:${map[变量]}
</#list>
JavaWeb(14) 页面静态化之使用freemarker模板生成一个html静态页面相关推荐
- springboot结合Freemarker模板生成docx格式的word文档(附代码)
首先参考的是这篇文章: java利用Freemarker模板生成docx格式的word文档(全过程) - 旁光 - 博客园参考:https://my.oschina.net/u/3737136/blo ...
- php网站如何静态化链接,建站教程之网站URL静态化处理
网络技术的日益发展,使得jsp.php等语言广泛的普及,很多的网站都早已进入动态化时期.过去的建站教程之网站URL静态化处理纯净html网页已经很难再找到了,而现在的网站大多数都拥有自己的数据库,它们 ...
- freemarker 模板生成pdf文件并下载
利用freemarker 模板生成pdf文件,通过浏览器直接下载或生成文件到指定目录 1.pom.xml文件 <!--引入Freemarker的依赖--> <dependency&g ...
- freemarker 生成java_半自动化Java代码生成器[利用freemarker模板生成]
rapid-generator 半自动化Java代码生成器[利用freemarker模板生成] 增加一些定制和扩展, 修改为基于MAVEN的格式. 整体架构保持不变. 增加的特性为: 支持表名前缀去除 ...
- 利用 freemarker 模板生成 word 小结
在企业级开发时,不可避免的会遇到生成 word 文档的需求,有两种常用的方案,1.使用 Apache POI 在后台通过代码生成 word 文档:2.使用模板生成 word 文档.第二种方法比较简单, ...
- Freemarker模板生成排版缩进问题
在将Freemarker作为模板使用时,生成的目标文件(HTML或xml或其他类型文件)时,往往会出现排版错乱的问题. 主要是:明明没有那么多占位符或缩进,但生成出来的文件却有对应的缩进. 类似下图效 ...
- java生成docx_java利用Freemarker模板生成docx格式的word文档
之前写过一篇利用Freemarker模板生成doc的博客,不过那个博客有点缺陷,生成的word占用的空间很大,几百页的word有将近100M了.所以,后面需求必须是生成的docx文档,结果导出后正常才 ...
- java利用Freemarker模板生成格式友好的doc或者docx文档
之前写过一篇利用Freemarker模板生成doc的博客,不过那个博客有点缺陷,不支持生成docx格式的文档.所以,这里补充一篇,生成docx或doc格式的文档以具体的docx模板或者doc模板为主. ...
- java利用Freemarker模板生成docx格式的word文档(全过程)
参考汇总: wordexport: JAVA生成并导出Word文档技术论证 java利用Freemarker模板生成docx格式的word文档(全过程) - 旁光 - 博客园 # 参考资料 - 其他项 ...
最新文章
- Java设计模式圣经连载(05)-代理模式
- Spring could 使用Feign超时问题
- mysql 先排序再去重_有人说先学会三轴,再去搞四轴、五轴加工中心,这几种有何区别?...
- 一窥谷歌神经机器翻译模型真面貌 其底层框架开源
- sublime的TAB和空格统一
- Linux运维实战之DNS的高级配置(转发器、视图等)
- 难以摸透的直男脑回路......
- flatmap_flatMap()与concatMap()与concatMapEager()– RxJava常见问题解答
- HDU - 5934
- 2020年工业互联网行业研究报告(国盛证券)
- 强跟踪卡尔曼滤波STF估算车辆质量——matab simulink仿真
- spring boot没有web.xml,如何向嵌入式的servlet容器中注册servlet组件
- SpringBoot异常处理以及对数据正确性的检查
- 微信输入法要来了!就长这个样子
- Nginx端口映射(外网访问)
- 运用.NET Framework中的类来创建看上去很专业的报表。
- 二级c语言笔试57,二级C语言笔试真题与答案.doc
- Linux中chmod命令修改权限详解
- E-Prime 软件中常用的 inline 语句
- 波利亚《怎样解题》感悟
热门文章
- 同城即时配送赛道,哈啰出行大有可为!
- android oat文件,OAT格式文件 如何打开OAT文件 OAT是什么格式的文件 用什么打开 - The X 在线工具...
- 个人从零开发一款 Android 应用、上线并盈利 | 项目复盘
- 《Verilog HDL与FPGA数字系统设计》书籍试读体验
- 松勤11期软件测试之Jmeter高级性能测试项目实战学习笔记
- 数据科普:定价模型与平价关系式(投资必知必会)
- python 动物分类_动物分类及图片
- 佳能R5相机断电0KB字节DAT视频文件无法打开播放怎么数据恢复MP4
- 微信支付的系统架构到底有多厉害?
- Latex (4)Latex参考文献BibTex、BibTeX