java通过模板生成html代码
通过java渲染FreeMarker模板
- 场景
- 添加POM依赖
- 添加模板
- 添加工具类
- 编写测试方法
- 输出结果
- 最后看下整体项目结构
场景
由于业务中台的邮件模板无法支持FreeMarker语法,故需自己编写html代码当做变量参数传入邮件模板,所以最终选用了引入FreeMarker模板引擎实现。
添加POM依赖
<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-freemarker</artifactId><version>2.4.5</version>
</dependency>
添加模板
<table style='width:100.0%;border:1.0px solid #e5e5e5;margin-bottom:15.0px;border-collapse:collapse;font-size:15px'><th style='width:40px;border:1.0px solid #e5e5e5;background-color:#f5f5f5;padding:5.0px;text-align:center;'>序号</th><th style='width:150px;border:1.0px solid #e5e5e5;background-color:#f5f5f5;padding:5.0px;text-align:center;'>姓名</th><#list dataList as item><tr><td style='padding:5.0px;text-align:center;border:1.0px solid #e5e5e5;'>${item.number}</td><td style='padding:5.0px;text-align:center;border:1.0px solid #e5e5e5;'>${item.name}</td></tr></#list>
</table>
添加工具类
package com.example.cabin;import freemarker.template.Configuration;
import freemarker.template.Template;
import freemarker.template.TemplateException;
import freemarker.template.TemplateExceptionHandler;import java.io.IOException;
import java.io.StringWriter;public class FreeMarkerUtil {private FreeMarkerUtil() {}public static String parseTemplate(String path, String filename, Object data) throws IOException {Configuration configuration = new Configuration(Configuration.getVersion());configuration.setDefaultEncoding("UTF-8");configuration.setClassForTemplateLoading(FreeMarkerUtil.class, path);configuration.setTemplateExceptionHandler(TemplateExceptionHandler.RETHROW_HANDLER);configuration.setWhitespaceStripping(true);Template template = configuration.getTemplate(filename);// 接收处理后的模版内容StringWriter stringWriter = new StringWriter();try {template.process(data, stringWriter);return stringWriter.toString();} catch (TemplateException e) {e.printStackTrace();} finally {stringWriter.close();}return "";}
}
编写测试方法
package com.example.cabin;import java.io.IOException;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;public class Test {private static final String path = "/";private static final String filename = "demo.ftl";public static void main(String[] args) throws IOException {//模拟对象Map<String, String> object = new HashMap<>(2);object.put("number", "1");object.put("name", "xxx");//数据列表List<Map<String, String>> dataList = new ArrayList<>();dataList.add(object);//模板变量Map<String, List<Map<String, String>>> templateMap = new HashMap<>(1);templateMap.put("dataList", dataList);//调用工具类抓取html代码String template = FreeMarkerUtil.parseTemplate(path, filename, templateMap);System.out.println(template);}
}
输出结果
<table style='width:100.0%;border:1.0px solid #e5e5e5;margin-bottom:15.0px;border-collapse:collapse;font-size:15px'><th style='width:40px;border:1.0px solid #e5e5e5;background-color:#f5f5f5;padding:5.0px;text-align:center;'>序号</th><th style='width:150px;border:1.0px solid #e5e5e5;background-color:#f5f5f5;padding:5.0px;text-align:center;'>姓名</th><tr><td style='padding:5.0px;text-align:center;border:1.0px solid #e5e5e5;'>1</td><td style='padding:5.0px;text-align:center;border:1.0px solid #e5e5e5;'>xxx</td></tr>
</table>
对应效果:
序号 | 姓名 |
---|---|
1 | xxx |
最后看下整体项目结构
无需配置application.yml
声明:
如涉及侵权请联系作者及时删除
java通过模板生成html代码相关推荐
- JAVA 根据模板生成doc文件
JAVA 根据模板生成doc文件 需求 根据模板生成对应的doc文档,文档内容动态填充. 实现 1.将doc模板转换为ftl文件,放入项目中 1.1 首先将模板另存为xml文件 1.2 更改xml文件 ...
- java根据模板生成pdf文件并导出(iText)
java根据模板生成pdf文件并导出 首先你的制作一个pdf模板: 1.先用word做出模板界面 2.文件另存为pdf格式文件 3.通过Adobe Acrobat pro软件打开刚刚用word转换成的 ...
- [转]MVC实用架构设计(三)——EF-Code First(3):使用T4模板生成相似代码
本文转自:http://www.cnblogs.com/guomingfeng/p/mvc-ef-t4.html 〇.目录 一.前言 二.工具准备 三.T4代码生成预热 (一) 单文件生成:Hello ...
- python按模板生成html_python 利用jinja2模板生成html代码实例
这篇文章主要介绍了python 利用jinja2模板生成html代码实例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下from jinja2 imp ...
- NetTier模板生成的代码框架用法 (转)
1.1. 概述: 使用NetTier模板生成的.net代码,包括完整的数据层,使用的技术是微软的 EnterpriseLibrary1.1版本,对应每张表都生成相对应的增删改查函数和存储过程,在查询中 ...
- CodeSmith NetTier模板生成的代码框架用法 (转)
1.1. 概述: 使用NetTier模板生成的.net代码,包括完整的数据层,使用的技术是微软的 EnterpriseLibrary1.1版本,对应每张表都生成相对应的增删改查函数和存储过程,在查询中 ...
- java用模板生成word(docx)文档(含动态表格)
生成word思路 用WPS或者office编辑好word的样式,然后另存为word xml文档,将xml翻译为FreeMarker模板,最后用java来解析FreeMarker模板并输出Docx. 编 ...
- Java根据模板生成pdf文件并导出
原文地址:http://blog.csdn.net/TOP__ONE/article/details/65442390 首先你的制作一个pdf模板: 1.先用word做出模板界面 2.文件另存为pdf ...
- Java根据模板生成excel文件【Java】【EasyExcel】【xls】
Background 前两天客户反应对数据导出的文件格式不太满意,然后给了我们模板,让我们按照模板导出数据.于是一通修改(excel数据量有限制他们也不管,之前我们给的csv格式). Java操作ex ...
最新文章
- angular元素属性绑定_AngularJS语法基础及数据绑定——详解各种数据绑定指令、属性应用...
- 数据可视化echarts学习笔记
- web 小程序 ch3 小程序框架
- c# 从一个大图里截取图形
- 嵌入式Jetty和Apache CXF:借助Spring Security来保护REST服务
- css3 固定,CSS3 calc()不适用于固定位置/绝对位置
- png文件合并_png格式图片和jpg格式图片有什么区别?
- (50)Verilog HDL SPI发送设计
- mysql存储登录密码_用户身份验证:存储用户ID和密码在一个MySQL数据库
- HDU 1260: Tickets
- arm-linux-gcc stdio.h,arm-linux-gcc stdio.h no such file or directory错误
- 条件运算符 c语言,C语言 —— 条件运算符
- 【qq机器人】机器人发美女图片
- 如何在win10中迅速打开命令提示符
- 计算机专业老师教案,技能大赛-2015年全国中等职业学校计算机应用基础及计算机类专业课程“创新杯”教师信息化教学设计和说课比赛总结...
- ubuntu 更换系统源和pip源
- 8.16 Redis的新数据结构、配置文件及使用
- linux svn 忽略指定文件
- H5企业微信如何返回到菜单页?
- 梯度值与参数更新optimizer.zero_grad(),loss.backward、和optimizer.step()、lr_scheduler.step原理解析