Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/424.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
他们发现了内联javascript框架问题_Javascript_Inline_Thymeleaf - Fatal编程技术网

他们发现了内联javascript框架问题

他们发现了内联javascript框架问题,javascript,inline,thymeleaf,Javascript,Inline,Thymeleaf,如果我使用ObjectMapper打印对象(也与Spring@RequestBody/@ResponseBody一起使用),它将 { "dataType":{ "$type":"DataType", "$name":"STRING" }, "friendlyName":"Customer Key" } 是否有一种方法可以强制thymeleaf与ObjectMapper兼容。我想我必须谈谈thymeleaf中的Jackson和JSON内联。 总而言之,我

如果我使用ObjectMapper打印对象(也与Spring@RequestBody/@ResponseBody一起使用),它将

{
   "dataType":{
      "$type":"DataType",
      "$name":"STRING"
   },
   "friendlyName":"Customer Key"
}
是否有一种方法可以强制thymeleaf与ObjectMapper兼容。

我想我必须谈谈thymeleaf中的Jackson和JSON内联。
总而言之,我们考虑了切换到自定义TextInlines的可能性 3.0 thymeleaf里程碑

因此,目前没有“干净”的方式切换到Jackson json序列化

然而,你能做的就是偷偷地使用你自己的文本链接。即:

  • 创建一个类
    org.thymeleaf.standard.inliner.StandardJavaScriptTextInliner
  • 实现您自己版本的
    formatEvaluationResult(Object)
    method,
    您可以在这里调用Jackson ObjectMapper
  • 将这个新的
    StandardJavaScriptTextInliner
    类放在适当的位置,以便在原始类之前加载它(例如,在tomcat中,将它放在正确的包结构下的classes dir中)
  • 另一种选择:

    在thymeleaf上下文中设置listObject时,将其设置为通过使用Jackson将listObject转换为JSON字符串获得的字符串


    然后使用JS eval()或更好的方法-JSON.parse将字符串转换为JS对象。

    这篇文章已经过时了,现在仍然是这样吗?您提供的链接中的问题仍未解决。还有,为什么投票数这么少?这是我唯一能找到的答案。我自己的问题是Thymeleaf忽略了我的
    @JsonInclude(JsonInclude.Include.NON_NULL)
    ,因此我的内联JSON包含很多空值。我是否应该为此发布一个新的SO问题?该问题在thymeleaf 3.0.0版本中已修复
    {
       "dataType":{
          "$type":"DataType",
          "$name":"STRING"
       },
       "friendlyName":"Customer Key"
    }
    
    {
       "dataType":"STRING",
       "friendlyName":"Customer Key"
    }