【发布时间】:2020-07-28 09:55:12
【问题描述】:
我正在尝试使用百里香叶在后端解析和处理用户生成的内容。 因此,我们做了以下工作:
@RestController
@RequestMapping(path = "/api/v1")
@Slf4j
public class MyController {
@Autowired
private TemplateEngine templateEngine;
...
@ApiResponse(code = 200, message = "OK", response = DeliveryDTO.class)
@PostMapping(path = "/{myId}/serve")
public DeliveryDTO serve(
@PathVariable String myId
) {
... // get myObj;
html = templateEngine.process(myObj.getHtml(), myObj.getContext());
这真的很好。但是现在我们有了 myObj 的某些部分,它们应该获得默认格式。例如
myObj.getHtml() 可以实现:
<table>
<tr th:each="item: ${ko}">
<td>
<a th:href="@{${URLBuilder.build(item)}}"><span th:text="${item.isin}"></span></a>.
</td>
<td>
<span th:text="${item.value1}"></span>
</td>
<td>
<span th:text="${item.value2}"></span>
</td>
</tr>
</table>
现在我希望将所有出现的“item.value1”格式化为两位小数,将“item.value2”格式化为三位小数。我可以将它添加到 html 模板中,但由于这是某种用户内容,我更愿意遍历所有出现并添加十进制格式选项。 关于如何实现这一点的任何想法?
干杯迈克
【问题讨论】:
-
可以加控制器吗?
-
我刚刚更新了问题
-
目前还不清楚,但据我所知,这与 Thymeleaf 无关。您有两个选择 - 在将值传递给模板之前对其进行格式化,或者使用 JavaScript 对其进行格式化。
-
数据是持久化在数据库中的,所以我没有可能用JavaScript来做某事。由于模板处理以某种方式查找模板变量的所有出现并对其本身进行格式化,因此必须有某种方法来获取所有变量,而无需手动解析 html。 TemplateEngine 实际上是一个注入的 Thymeleaf 类我应该能够以某种方式操纵这些变量格式
-
是的,我知道。但是显示部分不是我们完全控制的:) 但与此同时我越来越近了。 Context 是一个 thymeLeaf 上下文。变量似乎在里面。我正在进一步调查。
标签: java spring-boot thymeleaf