JavaScript-在JS中用innerHTML如何打印出能够执行的EL语句
我在做项目的时候用到
function(num){
//num是页面传来的参数
$("#printDiv").html("${userList.get("+num+").userName}");
}
报了类型转换的错误,但是用
function(num){
$("#printDiv").html("${userList.get(0).userName}");
}
则可以正常运行,这是为什么呢?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
js 是动态语言,用parseInt转换,试一下
是这样的,EL的代码是在后台解析及运行的,而JS的代码是在浏览器中解释执行的。
$("#printDiv").html("${userList.get("+num+").userName}");
这样的代码在后台根本不是有效的EL表达式,所以无法执行。
$("#printDiv").html("${userList.get(0).userName}");
这样的代码是有效的EL表达式,所以后台运行完毕之后输出到浏览器中的代码就是:
$("#printDiv").html("EL运行完毕之后的值");
如果你需要在JS中使用EL中的值,那么最直观的做法就是使用EL把数据输出到DOM元素,然后使用JS来操作这个DOM元素中的值。例如:
<div id="dataDiv">
<c:forEach items="${userList}" var="u">
<span><c:out value="${u.userName}"/></span>
</c:forEach>
</div>
然后使用JS获取所有的承载数据的SPAN元素:
var dataSpans = $("#dataDiv > span");
// Your code goes here