weixin_47204581
2021-03-23 16:43
采纳率: 80%
浏览 111
已采纳

${}变量可以直接在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呢

  • 写回答
  • 好问题 提建议
  • 关注问题
  • 收藏
  • 邀请回答

5条回答 默认 最新

  • 张小帅和刘美美 2021-03-23 17:03
    已采纳
    <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}");

    可以这样试试?

    已采纳该答案
    评论
    解决 无用
    打赏 举报
  • random1123 2021-03-23 16:45

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

    评论
    解决 无用
    打赏 举报
  • Proud lion 2021-03-23 16:51

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

    评论
    解决 无用
    打赏 举报
  • zt13502162671 2021-03-23 19:49

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

    评论
    解决 无用
    打赏 举报
  • weixin_47204581 2021-03-23 20:01

    已经解决了!在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>

    感谢各位!

    评论
    解决 无用
    打赏 举报

相关推荐 更多相似问题