踩坑:JSP中使用ES6、JavaScript的模板字符串

博客讲述了在JSP里书写JavaScript代码时,使用ES6模板字符串处理数据渲染为空的问题。原因是模板字符串中的内容被JSP的EL表达式解析,解决办法是用引号将其括起来,让最外层被EL处理,引号内的作为字符串拼接后由JS解析。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在JSP中书写JavaScript代码时,我想用ES6的模板字符串快速的处理接收到的数据。
当时的代码如下:

$('#btn')[0].addEventListener('click', function () {  
	$.get('/student/getCourse', function (data) {  
		content = data.map((item,idx) => {  
			return `<tr><td>${item.courseName}</td><td>${item.courseScore}</td></tr>`  
		}).join('')  
		$('tbody').html(content)
	})  
})

然后渲染不出来,${item.courseName}的值为空。

突然想起来JSP的EL表达式,恍然大悟,原来模板字符串中的${}被当做EL表达式来解析了,所以为空。

解决:使用引号将${}括起来
在JSP中使用ES6的模板字符串需要用引号括起来,像这样:

`<tr><td>${"${item}"}</td></tr>`

// 或

`<tr><td>${'${item}'}</td></tr>`

最外层的${}被当做EL表达式处理,而引号括起来的${}会被当做字符串拼接回模板字符串中,然后交给JS去解析

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值