Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/spring/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Spring 如何用thymeleaf序列化POJO?_Spring_Spring Mvc_Thymeleaf - Fatal编程技术网

Spring 如何用thymeleaf序列化POJO?

Spring 如何用thymeleaf序列化POJO?,spring,spring-mvc,thymeleaf,Spring,Spring Mvc,Thymeleaf,我想使用thymeleaf在标记中插入一个POJO(普通的旧java对象),作为普通的Json。我还使用SpringMVC作为框架 给定这样一个对象: class Data { String a; int b; Object c; } 我希望获得如下内容作为渲染模板: <script> var data = { a: "foo", b: 123, c: {...} } </script> 风险值数据

我想使用thymeleaf在
标记中插入一个POJO(普通的旧java对象),作为普通的Json。我还使用SpringMVC作为框架

给定这样一个对象:

class Data {
   String a;
   int b;
   Object c;
}
我希望获得如下内容作为渲染模板:

<script>
   var data = {
      a: "foo",
      b: 123,
      c: {...}
    }
</script>

风险值数据={
答:“福”,
b:123,
c:{…}
}
直到现在,我还没有找到一种使用thymeleaf渲染的方法

我试过:

<script th:inline="javascript">
    var data = /*[[${myDataObj}]]*/ {};
</script>

变量数据=/*[${myDataObj}]*/{};
但这失败了,因为显然thymeleaf无法序列化POJO

然后,我还尝试提供已经序列化为json的对象:

<script th:inline="javascript">
    var data = /*[[${myDataAsJson}]]*/ {};
</script>

var data=/*[[${myDataAsJson}]*/{};
但这也不起作用,因为它会再次转义字符串。同样,在thymeleaf中似乎没有办法提供行未替换字符串

…现在这太糟糕了…如何使用thymeleaf在脚本标记中插入对象

显然,自2012年以来,这是一个他们似乎没有给予太多考虑的问题:

…我的问题是:有什么解决办法吗?要使用thymeleaf序列化POJO?有点糟糕。如果我没有太多依赖它,我会把它扔掉,但现在要改变这种依赖性需要做很多工作。

编辑:

自第3阶段起,已实施:

…他们只花了3年多一点的时间:/


好的,我还没有找到一个很好的方法来做这件事,但下面是我的“总比没有好”解决方法:

<script th:inline="javascript">
    var jsonString = /*[[${myJsonString}]]*/ "{\"a\":\"... ";
    var data = JSON.parse(jsonString)
</script>

var jsonString=/*[${myJsonString}]*/“{\'a\':\'”;
var data=JSON.parse(jsonString)
这并不理想,因为它无用地执行额外的JSON序列化/反序列化…但至少它可以工作