spring-boot - Thymeleaf - url 问题:如何使用对象变量命名 url
问题描述
我是 Thymeleaf 的新手,我正在使用 Springboot。我正在尝试做一些非常简单的事情:我有一个 url,我想在不编辑 url 链接的情况下编辑文本。
这有效(它向我显示网站地址作为 url,我实际上可以点击它):
<a th:text="${c.getWebsite()}" th:href="${c.getWebsite()}"> Website </a>
这也有效(按钮称为“查看”,但超链接有效):
<a th:href="@{'/company/' + ${c.getId()}}" class="btn btn-primary"> <i class="fas fa-building"></i> View </a>
我想在按钮上写的不是视图,而是公司名称。由于某种原因,这不起作用:
<a th:text="${c.getName()}" th:href="@{|/company/${c.getId()}|}">Name</a>
当我检查元素时,我看到了这个:
<a href="/company/123456">Test Company</a>
所以这似乎是正确的,但它不允许我点击它。我尝试了很多不同的组合,并且还阅读了有关url 语法的 thymeleaf 文档,但到目前为止还没有运气。有人可以帮忙吗?谢谢!
注意:这是表格的一部分……“公司名称”(我想变成一个 url)在表格的第 3 列,然后网站有点远;最后,“查看”按钮位于最后一列。按钮视图有效,当我将该按钮的代码复制到第三列而不做任何更改时,它停止工作(它只显示按钮,但没有 url 工作,即使当我检查元素时,url 是那里)。这很奇怪,我在 chrome 和 edge 上都有。
解决方案
我不太确定,但发现工作链接标签和非工作链接标签之间的 href 属性存在差异,这可能会导致问题:工作链接有单个撇号,而另一个有管道......
th:href="@{'/company/' + ${c.getId()}}"
th:href="@{|/company/${c.getId()}|}"
这能解决你的问题吗?
顺便说一句:您不需要调用吸气剂。
${c.id}
……是一样的……
${c.getId()}
...,但更短且可读性更好。
推荐阅读
- django - 如何在同一管理页面 Django 上添加多个模型对象
- scons - gem5 scons 构建失败,并显示“TypeError:参数应该是整数或类似字节的对象,而不是'str'”
- laravel - 在刀片 laravel 7 中显示“选择”元素的旧数据
- javascript - RxJs 使用主题来触发当前 observable 中的结果
- python - 使用散点图绘制数据集中的多个列
- python - 有没有办法从任何网站提取查询字符串?
- javascript - 在另一个脚本中使用 JS 返回
- gradle - 如何强制 Gradle 在“main”中进行测试?
- android - Android Studio 中返回上一个活动的速度很低
- javascript - 如果选中至少一个复选框,如何在按钮上添加删除类