问题描述
- 关于在JavaScript中使用EL表达式的问题,到底用不用加单引号或者双引号或者不加?
- 之前我自己编辑百度地图api时候,EL表达式是直接写的,但是并不能使用。
当时我在csdn上找到了如下这篇文章,说是要加引号。
http://blog.csdn.net/xuechongyang/article/details/8629473
然后就成功了。比如下代码的最后一句。
<script type=""text/javascript""> // 百度地图API功能 var map = new BMap.Map(""allmap""); map.centerAndZoom(new BMap.Point(116.404 39.915) 12); //var src= <%=request.getAttribute(""src"")%>; //var des= <%=request.getAttribute(""des"")%>; var output = ""从""+'${src}'+""到""+'${des}'+""驾车需要""; //var output = ""从""+src+""到""+des+""驾车需要""; var searchComplete = function (results){ if (transit.getStatus() != BMAP_STATUS_SUCCESS){ return ; } var plan = results.getPlan(0); output += plan.getDuration(true) + ""n""; //获取时间 output += ""总路程为:"" ; output += plan.getDistance(true) + ""n""; //获取距离 } var transit = new BMap.DrivingRoute(map {renderOptions: {map: map} onSearchComplete: searchComplete onPolylinesSet: function(){ setTimeout(function(){alert(output)}1000""); }}); transit.search('${src}''${des}');</script>
但在我写一个JSP分页时候,我这里是照着网上一个分页教程敲的代码,是不加任何单引号或者双引号,可以正常使用。
//当前页数
var currentPage = ${result.currentPage};
//一共多少数据
var totalPage = ${result.totalPage};但是在js片段中我自己写一句:var showallroutesusertype = ${showallroutesusertype};然后通过
function deleteRoute(idList)//发出异步请求 { question = confirm(""你确认要对此路线发起拼车吗?""); if (question){ var xhr = createXHR(); xhr.onreadystatechange = function() { if (xhr.readyState == 4) { if (xhr.status >= 200 && xhr.status < 300 || xhr.status == 304) { doDeleteSuccess(idList); } } } xhr.open(""get""/carpool/servlet/CreateOrdersServlet?showallroutesusertype=""+showallroutesusertype+""&routeid=""+idList true); xhr.send(); } } function createXHR() { if (window.XMLHttpRequest) { return new XMLHttpRequest(); } else if (window.ActiveXObject) { return new ActiveXObject(""Microsoft.XMLHTTP""); } }//后略
在后台获取的却是“undefined”字符串。
请问这到底是怎么回事。。顺便在之前我有把result和showallroutesusertype都setAttribute到了request里。
解决方案
这个得看数据是什么,如果是数字加不加引号无所谓,如果是字符串就需要引号了,还得注意转义里面的引号,要不输出的不是符合js语法的内容就会报错,或者输出变量名导致未申明变量的错误
时间: 2024-09-19 09:46:05