博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
[java学习笔记]freemarker模板的页面静态化
阅读量:5295 次
发布时间:2019-06-14

本文共 1881 字,大约阅读时间需要 6 分钟。

  web开发中,对于动态页面,可以采用web容器将数据和模板组装成静态页面然后返回给前端的方式,但是这种方式的效率较低,因此,可以将一些变化不怎么频繁的页面,事先静态化,作为静态资源部署在nginx中,例如电商网站中的商品详情页面,在线教育系统中的课程详情页面等;这些静态页面的维护需要依靠一个后台管理系统,而这些后台管理系统生成静态页面的过程即为页面静态化;

  一个静态页面的生成需要两个部分:模板和数据;模板技术有很多中,常见的有:jsp,freemarker,thymeleaf等。这里记录一个使用freemarker模板生成静态页面的简单程序:

@Test    public void contextLoads() throws IOException, TemplateException {        // 页面静态化测试,需要模板和数据;        // 创建配置类        Configuration configuration = new Configuration(Configuration.getVersion());        // 模板加载器,这是以字符串的形式加载模板,也可以设置模板路径以文件的形式加载模板        StringTemplateLoader templateLoader = new StringTemplateLoader();        // 模板字符串        String templateStr = "\n" +                "姓名:${person.name}
\n" + "生日:${person.birthday?date}
\n" + "爱好:<#list person.hobbies as hobby>\n" + " ${hobby}    \n" + "
\n" + ""; // 加载模板 templateLoader.putTemplate("template", templateStr); configuration.setTemplateLoader(templateLoader); // 获得模板 Template template = configuration.getTemplate("template"); // 准备数据 Person person = new Person(); person.setHobbies(new ArrayList<>()); person.setBirthday(new Date()); person.setName("测试姓名"); person.getHobbies().add("song"); person.getHobbies().add("jump"); person.getHobbies().add("rap"); person.getHobbies().add("busketball"); Map
map = new HashMap<>(); map.put("person", person); // 静态化 String content = FreeMarkerTemplateUtils.processTemplateIntoString(template, map); // 输出 System.out.println(content); // }
View Code

生成的结果:

姓名:测试姓名
生日:2019-7-16
爱好: song     jump     rap     busketball    
View Code

然后再将这些生成的html放在本地的对应的文件夹,即可完成页面的发布。

转载于:https://www.cnblogs.com/yeqingxue/p/11193180.html

你可能感兴趣的文章
JavaScript介绍
查看>>
js中函数与对象的使用
查看>>
正则表达式
查看>>
开源网络漏洞扫描软件
查看>>
yum 命令跳过特定(指定)软件包升级方法
查看>>
创新课程管理系统数据库设计心得
查看>>
Hallo wolrd!
查看>>
16下学期进度条2
查看>>
Could not resolve view with name '***' in servlet with name 'dispatcher'
查看>>
springBoot配置elasticsearch搜索
查看>>
Chapter 3 Phenomenon——12
查看>>
中小学教育缴费遇到的一些问题
查看>>
FAIR开源Detectron:整合全部顶尖目标检测算法
查看>>
C语言中求最大最小值的库函数
查看>>
SRS
查看>>
14.typescript-类与接口
查看>>
js学习(精华帖)
查看>>
和小哥哥一起刷洛谷(1)
查看>>
分享squid缓存服务器配置-之conf配置文件的详细介绍
查看>>
jQuery教程详解(一)
查看>>