今天在使用Thymeleaf裝填Model信息時發現th:href失效了,代碼如下:
<a th:href="@{/detail/${plant.id}}">
當點擊該鏈接的時候,跳轉到失敗頁面:
提示頁面找不到。
在google瀏覽器下,按F12,點擊network,查看源碼:
發現plant的id並沒有被裝填進去。於是確定是th:href沒有起作用,隨後仔細檢查,注意到
/$</code>,我們知道,<code>/</code>往往具有轉義的作用。所以可能是<code>/</code> 把 <code>${plant.id}
轉義了,當成了普通的字符串,從而沒有起作用。
解決方案
於是將代碼改爲:
<a th:href="@{'/detail/'+${plant.id}}">
測試,成功!鏈接恢復正常!在這裏,避免了‘/’與‘$’的直接接觸,從而避免了轉義的困擾。