尊暮萧的个人空间 - freemarker
type: channel
link: https://www.zunmx.top/tag/freemarker/
items: FreeMarker 基本技能

FreeMarker 基本技能
type: item
date: 2021-05-25T23:37:27+08:00
description: 引言FreeMarker 是一种前端模板引擎，通常可以通过模板来批量生成静态页面，当然也可以做一些代码的自动生成。众所周知的，访问静态页面的速度相比走Servlet要快得多，如果一个页面，不会经常改变，生成静态页面会减少动态服务器的负载压力，通过静态服务器，如Nginx，Nginx的并发量2~5w，而动态服务器的并发量普遍很低，因此也说明了静态页面的优越性。倘若使用Tomcat来处理静态页面，岂不是大材小用了？导入引用官网中的一张图通俗的说是在模板中定义好样式和坑位，然后通过往坑位里放值，从而生成文件。做个Demo导入Pom<?xml version="1.0" encoding="UTF-8"?> 4.0.0 top.zunmx T_FK 1.0 war org.freemarker freemarker 2.3.31 org.springframework spring-webmvc 5.3.5 junit junit 4.13.1 test org.springframework spring-test 5.3.5 生成器package top.zunmx.demo; import freemarker.template.Configuration; import freemarker.template.Template; import java.io.File; import java.io.FileWriter; import java.io.Writer; import java.util.*; public class Maker { public static void main(String[] args) throws Exception { //step 1 Configuration configuration = new Configuration(Configuration.getVersion()); //step 2 configuration.setDirectoryForTemplateLoading(new File(new File("").getAbsolutePath() + "/src/main/webapp/template/")); //step 3 configuration.setURLEscapingCharset("utf-8"); //step 4 Template template = configuration.getTemplate("template.ftl"); //step 5 Map<String, Object> info = new HashMap<String, Object>(); info.put("name", "zunmx"); info.put("age", 20); info.put("website", "https://www.zunmx.top"); info.put("date", new Date()); List<String> skill = new ArrayList<String>(); skill.add("Java"); skill.add("Python"); skill.add("C++"); skill.add("PHP"); info.put("skill", skill); List<Object> goodsList = new ArrayList<Object>(); Map<String, Object> goods1 = new HashMap<String, Object>(); goods1.put("name", "Dell Gaming 7567"); goods1.put("cate", "Computer"); goods1.put("price", 7999); goodsList.add(goods1); Map<String, Object> goods2 = new HashMap<String, Object>(); goods2.put("name", "Red MI 8 PRO"); goods2.put("cate", "Phone"); goods2.put("price", 1499); goods2.put("status", 1); goodsList.add(goods2); Map<String, Object> goods3 = new HashMap<String, Object>(); goods3.put("name", "MI Band 5"); goods3.put("cate", "Watch"); goods3.put("price", 21…