当前位置: 首页 > 知识库问答 >
问题:

使用Thymeleaf中的变量一次设置多个标签属性

邰德业
2023-03-14

我正在迁移一些JSP文件到Thymeleaf,我发现了以下问题。在原始的JSP代码中,有一个包含在许多其他JSP文件中的文件,其行如下:

<c:set var="myVar" value="data-x=50 data-y=37" />

在包含此变量的文件中,变量myVar的使用方式如下:

<div class="myClass" ${myVar}>

设置同时在所有位置使用的多个属性。这里的要点是,您在一个文件中设置了myVar,其值在所有其他文件中使用。如果需要更改属性的值,则只需更改一个文件。

为了在Thymeleaf中复制这一点,我尝试以下列方式使用th: attr属性。首先,我在模型中设置了一个这样的变量:

model.addAttribute("myVar", "data-x=50, data-y=37");

然后在百里香,我会:

<div class="myClass" th:attr="${myVar}" >

但它不起作用,它抛出

TemplateProcessingException: Could not parse as assignation sequence: "${myVar}"

我也想过使用Javascript使用JQuery动态添加属性,但是我更喜欢用其他方式,因为我没有构建应用程序,它有很多脚本,我担心通过Javascript添加属性会有副作用。

是否有任何html" target="_blank">方法可以直接使用Thymeleaf在HTML输出中编写?

共有1个答案

苏富
2023-03-14

一种方法可以通过预处理来实现这一点。这样的东西将与您的示例一起工作:

<div class="myClass" th:attr="__${myVar}__" />

(这确实依赖于${myVar}是th:attr属性的有效字符串,因此您必须小心使用它。)

 类似资料:
  • 问题内容: 我正在使用Selenium,想知道是否可以一次使用多个TABS?我不想使用多个浏览器实例(即IE Pun的2个副本)。如果不可能,如何在顺序运行的各个选项卡之间切换? 谢谢! 问题答案: 如果有一个链接打开一个新的窗口/选项卡,则可以使用 但是,如果要在多个窗口上运行某些程序,则建议使用多个webdriver实例。它易于管理,并且受支持(打开新标签页/窗口时有一些变通办法,例如按可打开

  • 问题内容: 我不熟悉Thymeleaf,并将Web页面从JSP转换为Thymeleaf。我有一个像这样的strut标签: 该变量可以在JSP中的任何地方使用。Thymeleaf中是否有其他替代方法? 问题答案: 你可以使用局部变量。 声明带有属性的HTML元素。例如 文档说明 当被处理时,该变量被创建为一个局部变量,并添加到变量地图从上下文来,所以它是可用于评估任何其他变量从一开始就在上下文中声明

  • 我正在使用Thymeleaf作为模板引擎。我如何将一个变量从Spring模型传递到JavaScript变量? Spring侧:

  • 我知道我可以在每个网页的开头使用ASP/PHP语句,但这似乎使用了太多的资源;每个用户都将在每个页面上执行SET语句... 是否有一种方法可以在每个会话中设置变量或执行其他SQL语句,就像ASP中的onstart事件一样?或者,如果不对每个页面上的每个用户执行查询,如何实现我的目标?

  • 问题内容: 我正在使用Thymeleaf作为模板引擎。如何将变量从Spring模型传递给JavaScript变量? Spring-side: Client-side: 问题答案: 根据官方文件:

  • 在邮件中,我想显示一个java变量: 在邮件模板中,我执行以下操作: 在邮件中,它转换为: 如何使变量得到很好的解释。 非常感谢。