${}变量可以直接在a herf 中使用吗?

<a href="/events/update/${events.id}" class="btn btn-primary">
    <i class="fas fa-edit"></i> Update event</a>

这里events.id本来应该是Long数据类型,但实际访问后发现url变成了这样

http://localhost:8080/events/update/$%7Bevents.id%7D

而不是我想要的

http://localhost:8080/events/update/XXX (XXX为events.id的值)

而后我又在同一页面检测了一下events.id到底是啥,

<tbody>
  	<tr><td th:text="${events.id}">My ID</td></tr>
</tbody>

请问这是为什么呢?为什么同样是${}一个能在td中以long表示,另一个在a herf中则是一串String呢

<a id="hrefButton" class="btn btn-primary">
<i class="fas fa-edit"></i> Update event</a>

.
.
.
.
console.log("${events.id}");
$("#hrefButton").attr("href", "/events/update/" + "${events.id}");

可以这样试试?

你这如果是vue的话,第一个href要变为:href

${} 要在 ` ` 里面用 而不是 " " 或者  ' '

${}在``里面就像是个语法糖 类似于href="/events/update/“+events.id+”"这样子,然后js是一种弱语言,没有像是C#,java这样有强类型的验证,主要是因为js不是一种汇编语言,需要编译后才能去执行。导致他可以像是var a= 1;a="123";a={};都可以的

已经解决了!在3L基础上加上获取td里面的数值组合就能得到正确的url了


 <script>
 	$(document).ready(function(){
		$("table").each(function(){
			var $li = $(this).find('td').eq(0).text()
			console.log($li);
			$("#hrefButton").attr("href", "/events/update/" + $li);
		})
	})
 </script>

感谢各位!