<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>
感谢各位!