问题分析
今天在使用Thymeleaf装填Model信息时发现th:href失效了,代码如下:
<a th:href="@{/detail/${plant.id}}">
当点击该链接的时候,跳转到失败页面:
提示页面找不到。
在google浏览器下,按F12,点击network,查看源码:
发现plant的id并没有被装填进去。于是确定是th:href没有起作用,随后仔细检查,注意到
/$
,我们知道,
/
往往具有转义的作用。所以可能是
/
把
${plant.id}
转义了,当成了普通的字符串,从而没有起作用。
解决方案
于是将代码改为:
<a th:href="@{'/detail/'+${plant.id}}">
测试,成功!链接恢复正常!在这里,避免了‘/’与‘$’的直接接触,从而避免了转义的困扰。