如何使用 thymeleaf 序列化 POJO?

2023-12-09

我想在 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?这有点糟糕。如果我不太依赖它,我就会把它扔掉,但现在改变这种依赖需要做很多工作。


EDIT:

从 thymeleaf 3 开始,它已经实现:https://github.com/thymeleaf/thymeleaf/issues/12

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


好吧,我还没有真正找到一个好的方法来做到这一点,但这是我的“总比没有好”的解决方法:

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

它并不理想,因为它无用地执行额外的 JSON 序列化/反序列化……但至少它有效。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何使用 thymeleaf 序列化 POJO? 的相关文章

随机推荐

  • $.mobile 未定义(Worklight + jQuery Mobile)

    我有主要的html
  • IScroll 包装器没有获得高度

    我有以下代码 div height 100 div class homebutton zeile a href pictures div class homebutton all div class homebutton name Pict
  • 我如何使用 python 从 flashscore 中抓取足球结果

    网页抓取 Python 我是刮擦新手 我想抓取英超联赛 2018 19 赛季结果 赛程 结果 日期 但我很难浏览该网站 我得到的只是空列表 无 如果您有可以分享的解决方案 这将是一个很大的帮助 这就是我尝试过的 import pandas
  • Angular 2:向 ngModelGroup 添加验证器

    我正在使用一个ngModelGroup将多个表单输入分组在一起的指令 在文档中 https angular io docs ts latest api forms index NgModelGroup directive html 我读到有
  • Promise.resolve 与解决

    我有这个代码 var promise1 new Promise function resolve reject setTimeout gt console warn Elo resolve First response 1000 promi
  • 我可以通过主机名从 Kubernetes 中另一个节点上运行的另一个容器访问该容器吗?

    我相信我的问题很简单 我正在执行在裸机上安装 Kubernetes 集群的先决条件 假设我有 master Docker DB 容器的主机名固定在第一个节点上 slave Docker DB 容器的主机名固定在第二个节点上 我可以与mast
  • CArrayDataProvider 与 CGridView 分页 Yii

    我正在尝试对 a 进行分页CGridView using CArrayDataProvider my rawData是一个自定义数组 不是来自数据库 模型 因此 在控制器的操作中有以下内容 form new SearchUser here
  • EF Code First 中的计算列

    我需要在数据库中有一列由数据库计算为 行总和 行总和b 我正在使用代码优先模型来创建数据库 我的意思是 public class Income Key public int UserID get set public double inSu
  • 将非对称算法私钥和公钥与 RSA C# 一起使用

    我有两个包含 RSA 私钥和 RSA 公钥的 AsymmetryAlgorithm 对象 私钥是从 Windows MY 密钥库中检索的 公钥是从用户的证书中检索的 如何在 C 中将这些密钥与 RSACryptoServiceProvide
  • 画布内元素中的事件

    我在画布标签内绘制了图像 我如何向其中添加事件 我想在用户单击该图像时执行某些操作 character addEventListener click function alert foo true character is a var im
  • Android 日历提供程序 API 级别

    我们正在开发一个 Android 日历应用程序 问题是我们想要获取其他日历的事件并将我们的事件也分享给他们 据我所知 这是由内容提供商实现的 问题是日历内容提供程序所需的API级别是API 14 我们需要在API 7 Android 2 1
  • CGImageRef 宽度与每行字节数不一致

    我正在尝试从屏幕缓冲区中读取像素 我正在创建一个CGImageRef with CGDisplayCreateImage 但值CGImageGetWidth and CGImageGetBytesPerRow在一起没有意义 将每行字节数除以
  • 如何在sql server中将数字写入word函数[关闭]

    Closed 这个问题需要多问focused 目前不接受答案 如何在 SQL Server 中编写一个函数来以文字形式输出数字 input 1输出 1个 输入 129输出 一百二十九 考虑使用辅助数字表 注意 这个 MS SQL 创建一个序
  • Firebase:setPersistenceEnabled 和 keepSynced 之间有什么区别?

    我一直认为 当我使用以下内容时 所有聊天对话数据都可以随时离线使用 但不知何故不是 所有节点都是从服务器加载的 FirebaseDatabase getInstance setPersistenceEnabled true 然后 根据 DO
  • Swift 广播流媒体 AVPlayer

    我想在 Swift 中从互联网传输音频 但还没有找到正确的功能示例 In Objective C AVPlayerItem playerItem AVPlayerItem playerItemWithURL NSURL URLWithStr
  • 使用 PHP 和 CURL 发出 PUT 请求

    首先 我基于以下假设进行工作 根据 REST 架构 您可以使用 PUT 创建新资源 在我的例子中是一个包含用户提供的附加信息的文件 如果这个概念不正确 请告诉我 这样我就不会从架构的角度提出错误的问题 我发现有两件事与使用 CURL 的 P
  • Python 正则表达式模式 * 未按预期工作

    在工作过程中Google 2010 年 Python 课程 我找到了以下文档 左侧出现 0 次或多次模式 但是当我尝试以下操作时 re search r i biiiiiiiiiiiiiig group 我期望 iiiiiiiiiiiiii
  • jqueryui自动完成限制多项选择

    我正在使用 jQuery UI 自动完成 并试图限制多个结果 基本上 我正在构建一个 PM 系统 我正在使用 收件人 字段的自动完成功能 但我试图限制一条消息可以发送给的人数 因此 将最大选择限制为 25 有什么办法可以限制这个吗 还有关于
  • Android中如何保存RecyclerView的滚动位置?

    我有位于 SwipeRefreshLayout 内部的 Recycler 视图 此外 能够在另一个活动中打开每个项目 返回到 Recycler 后 我需要滚动到所选项目 或滚动到上一个 Y 怎么做 是的 我用谷歌搜索 在 StackOver
  • 如何使用 thymeleaf 序列化 POJO?

    我想在 a 中插入一个 POJO 普通的旧 java 对象 作为普通 Json