【发布时间】:2021-06-07 12:05:51
【问题描述】:
我正在开发一个从 HTML 模板生成电子邮件的微服务(我们称之为电子邮件微服务)。基本上,客户端将带有一些数据的 json 发送到电子邮件微服务,并基于该数据生成电子邮件(使用 json 中的值填充 html 模板中的字段)。客户端是我们的另一个微服务,它准备好json发送到email微服务。
Json 结构是这样的:
{
"data":{
......
},
.......
}
“数据”是可以包含不同事物的动态对象。所以我们可以用键值对填充它,例如,然后映射到 HashMap,然后使用这个 HashMap 填充我们的模板,使用一些模板引擎(Velocity、thymeleaf 或其他东西)。假设我们可以这样准备 json:
{
"data":{
"userName":"Jack"
},
.......
}
然后在模板中使用,类似这样:
<b> Hello {{userName}}! </b>
这种方法效果很好,但我想简化它,所以我们不需要每次都准备一个适当的 json (用键值对填充“数据”字段),而是我们只想放一些POJOs,不带我们需要哪些字段,然后在我们的模板中使用JsonPath来访问需要的数据。比如我们创建一个json:
{
"data":{
"user": {
"firstName":"Jack",
..........
},
...........
},
.......
}
然后在模板中写下这样的内容:
<b> Hello {{data.user.firstName}}! </b>
这会节省我们一些时间,因为我们不需要关心 json 结构。
是否有任何模板引擎可以使用 Json 作为输入并通过 JsonPath 访问值?所以我写了这样的东西:data.user.firstName,引擎会自动从给定的 json 中找到值。
【问题讨论】:
标签: java html json spring-boot templates