为什么 href(使用 thymeleaf)显示“?”在单击 href 提供的 html link 后的地址中,即使没有“?”在参考资料中?

Why does href (using thymeleaf) show a "?" in the address after clicking the html link provided by href even though there is no "?" in href?

我想使用地址为 http://localhost:8080/book/{key} 的 thymeleaf 在我的 html 页面中生成链接。但是,它总是显示带有额外问号的地址,而不是 http://localhost:8080/book/?{key}。是不是因为我在html页面的语法错误?如何更改我的 html 页面,使其不显示问号?

P.S。密钥来自 existingTitle

列表中提供的密钥列表
<ol style="padding-top:1em">
   <span th:each="t : ${existingTitle}">
      <a th:href="@{book/(${t[0]})}">
         <li th:text="${t[1]}" style="padding-top:0.5em"></li></a>
   </span>
</ol>

这是因为您将 t[0] 作为参数而不是路径传递。检查文档中的 absolute path and adding parameters 部分。

所以你的 link 应该喜欢这个

<a th:href="@{book/{id}(id=${t[0]})}">

<a th:href="@{book/${t[0]}}">

只是为了补充 Justinas 的 post 以及我随后的回复,使用 “a th:href="@{book/${t[0]}}"”导致 t[0] 的值变得乱码,就像这张图片中的那样: