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

如何根据href链接动态更改Thymeleaf片段

卜鹏
2023-03-14

我想用Thymeleaf片段构建一个页面,这些片段根据下面的链接动态呈现。
,我在通过Spring控制器在运行时解析片段名称时遇到了一个问题。

这里有一个最小的生殖例子来说明我的意思。

我有List.html页面,其中有两个链接列表1和列表2,图片和代码如下所示:

<body>
  <button type="button"><a th:href="${'/lists/list1'}">List 1</a></button>
  <button type="button"><a th:href="${'/lists/list2'}">List 2</a></button>

  <!-- This doesn't work, the include is not resolved correctly -->
  <th:block th:include="'fragments/lists/' + ${fragmentName}
                        + ' :: ' + ${fragmentName}"></th:block>

  <!-- However static include works well -->
  <th:block th:include="fragments/lists/list1 :: list1"></th:block>
</body>
java prettyprint-override">@GetMapping("lists")
public String getListsPage(Model model) {
    model.addAttribute("fragmentName", "listAll");
    return "lists";
}

@GetMapping("lists/list1")
public String getAllItems(Model model) {
    model.addAttribute("list1", itemService.getList1());
    model.addAttribute("fragmentName", "list1");
    return "lists";
}

@GetMapping("lists/list2")
public String getAllItems(Model model) {
    model.addAttribute("list2", itemService.getList2());
    model.addAttribute("fragmentName", "list2");
    return "lists";
}
Caused by: org.thymeleaf.exceptions.TemplateInputException: Error resolving
  template ['fragments/lists/' + ${fragmentName} + '], template might not exist
  or might not be accessible by any of the configured Template Resolvers
  (template: "lists" - line 38, col 11)

我可能会使用片段表达式,但我不确定具体如何使用。
任何建议都很感激。

共有1个答案

程亦
2023-03-14

我将这样表达语法:

<th:block th:include="~{${'fragments/lists/' + fragmentName} :: ${fragmentName}}"></th:block>
 类似资料:
  • 问题内容: 如何使用jQuery更改超链接的href? 问题答案: 使用 会修改所有超链接的href,使其指向Google。您可能需要一个更精细的选择器。例如,如果您混合使用链接源(超链接)和链接目标(也称为“锚”)锚标签: …那么您可能不想意外地向它们添加属性。为了安全起见,我们可以指定选择器仅匹配具有现有属性的标签: 当然,您可能会想到一些更有趣的东西。如果要使锚与特定的锚匹配,则可以使用如下

  • 问题内容: 我是D3的新手,正在研究json数据是动态的强制图。我能够在接收到新数据后更改力图,但这会产生弹跳效果。创建我的力图的代码是: 我可以通过再次调用整个函数来在接收到新的json字符串时创建新图。这将创建一个新图代替旧图。接收到值后,我无法使用新的值集更新旧图;我图中的节点没有改变,只是它们之间的关系改变了。 我确实偶然发现了一个示例(http://bl.ocks.org/1095795

  • 问题内容: 如何使用JavaScript 将属性动态添加到链接? 我基本上想动态添加一个属性(即,当用户单击网站上的特定图像时)。 来自: 我需要去: 问题答案:

  • 我不知道如何为这个问题设置一个标题。 我想要的是用单击的标记的内容更改DIV内部的内容。问题是,在我的标记中,我有另一个嵌套的DIV和一些文本,我不希望该文本在更改时显示。 如何在更改时只显示标记的内容,而不显示其子div? 这是我的代码和指向JSFiddle的链接 null null https://jsfidle.net/mariokala/zmdjoy9b/28/

  • 向最终用户提供一份货币清单。他们可以在任何时候选择他们感兴趣的一个。因此,需要根据所选货币更改中使用的区域设置。这似乎不是微不足道的。 是否有一种方法可以根据在运行时动态提供的货币代码来确定区域设置?

  • 问题内容: 我在网络应用程序中生成普通链接,例如: 当我单击链接时,它将在新页面中显示图片。如果要保存图片,则需要右键单击它并选择“另存为” 我不希望这种行为,我想在单击链接时弹出一个下载框,这可能仅适用于html或javascript吗?怎么样? 如果不是,我想我将不得不编写一个download.php脚本,并以文件名作为参数将其调用到href中…? 问题答案: