引入pom
- <dependency>
- <groupId>org.springframework.bootgroupId>
- <artifactId>spring-boot-starter-freemarkerartifactId>
- dependency>
代码:
- import com.alibaba.fastjson.JSON;
- import com.fuing.tea.commons.enums.TemplateEnum;
- import freemarker.template.Configuration;
- import freemarker.template.Template;
- import org.slf4j.Logger;
- import org.slf4j.LoggerFactory;
-
- import java.io.BufferedWriter;
- import java.io.File;
- import java.io.StringWriter;
-
- /**
- * @author Garcia
- * @date 2022/8/25 14:13
- */
- public class FreemarkerUtil {
-
- private static Configuration configuration;
-
- private static final String BASE_PACKAGE_PATH = File.separator + "templates";
-
- static Logger logger = LoggerFactory.getLogger(FreemarkerUtil.class);
- static {
- configuration = new Configuration(Configuration.DEFAULT_INCOMPATIBLE_IMPROVEMENTS);
- // 第二步:设置模板文件所在的路径。
- configuration.setClassForTemplateLoading(FreemarkerUtil.class, BASE_PACKAGE_PATH);
- // 第三步:设置模板文件使用的字符集。一般就是utf-8.
- configuration.setDefaultEncoding("utf-8");
- }
-
- public static String createHtml(TemplateEnum tlf, Object model) throws Exception {
- logger.info("根据模板生成内容, 模板:{}, model={}", tlf.getName(), JSON.toJSONString(model));
- StringWriter sw = null;
- BufferedWriter writer = null;
- try {
- Template template = configuration.getTemplate(tlf.getName());
- sw = new StringWriter();
- writer = new BufferedWriter(sw);
- template.process(model, writer);
- }finally {
- if (sw!=null){
- sw.close();
- }
- if (writer!=null){
- writer.close();
- }
- }
- return sw.toString();
- }
- }
- /**
- * @author Garcia
- * @date 2022/8/25 14:18
- */
- public enum TemplateEnum {
-
- /**
- * 报告模板
- */
- REVIEW_REPORT("reviewTemplate.ftl","报告模板");
-
- private String name;
-
- private String desc;
-
- TemplateEnum(String name, String desc){
- this.name = name;
- this.desc = desc;
- }
-
- public String getName() {
- return name;
- }
- }
具体怎么使用,需要自己看解析方式