<script th:inline="javascript" type="text/javascript">
//expose list data to javascript
var listObject = /*[[${listObject}]]*/ [];
</script>
打印到文件中的替换文本与 Jackson 库的 ObjectMapper 所做的不同。
对于上面示例中的 Thymeleaf,listObject 将是
{
"dataType":{
"$type":"DataType",
"$name":"STRING"
},
"friendlyName":"Customer Key"
}
如果我用 ObjectMapper 打印对象(也与 Spring @RequestBody/@ResponseBody 一起使用),它将是
{
"dataType":"STRING",
"friendlyName":"Customer Key"
}
有没有办法可以强制 thymeleaf 与 ObjectMapper 兼容。
I think this https://github.com/thymeleaf/thymeleaf/issues/81不得不说一下 Jackson 和 thymeleaf 中的 JSON 内联。
总而言之,考虑切换到自定义 TextInliners 的可能性
3.0 百里香里程碑。
因此,目前没有“干净”的方法来切换到 Jackson json 序列化。
然而,您可以做的是隐藏您自己的 TextInliner。那是:
- 创建一个类
org.thymeleaf.standard.inliner.StandardJavaScriptTextInliner
.
- 实现您自己的版本
formatEvaluationResult(Object)
method,
您可以在其中调用 Jackson ObjectMapper 。
- 把这个新的
StandardJavaScriptTextInliner
类放在适当的位置,以便它在原始类之前加载(例如,在 tomcat 中将其放在正确的包结构下的类目录中)。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)