我想在 a 中插入一个 POJO (普通的旧 java 对象)作为普通 Json<script>
使用百里香叶标记。我还使用 Spring MVC 作为框架。
给定一个像这样的对象:
class Data {
String a;
int b;
Object c;
}
我想获得类似这样的内容作为渲染模板:
<script>
var data = {
a: "foo",
b: 123,
c: {...}
}
</script>
直到我还没有找到使用 thymeleaf 渲染它的方法。
我试过了:
<script th:inline="javascript">
var data = /*[[${myDataObj}]]*/ {};
</script>
但这失败了,因为 thymeleaf 显然无法序列化 POJO。
然后,我还尝试提供已序列化为 json 的对象:
<script th:inline="javascript">
var data = /*[[${myDataAsJson}]]*/ {};
</script>
但这也不起作用,因为它会再次转义字符串。同样,百里香似乎无法提供行未转义的字符串。
...现在这很糟糕...如何使用 thymeleaf 在脚本标记中插入对象?!
显然,这是自 2012 年以来的一个问题,他们似乎没有给予太多考虑:
- https://github.com/thymeleaf/thymeleaf/issues/12
- https://github.com/thymeleaf/thymeleaf/issues/81
...我的问题是:有什么解决方法吗?使用 thymeleaf 序列化 POJO?这有点糟糕。如果我不太依赖它,我就会把它扔掉,但现在改变这种依赖需要做很多工作。