板砖好少年 2016-05-20 06:49 采纳率: 100%
浏览 3845
已采纳

关于在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里。

  • 写回答

1条回答 默认 最新

  • Go 旅城通票 2016-05-20 07:36
    关注

    这个得看数据是什么,如果是数字加不加引号无所谓,如果是字符串就需要引号了,还得注意转义里面的引号,要不输出的不是符合js语法的内容就会报错,或者输出变量名导致未申明变量的错误

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥188 寻找能做王者评分提取的
  • ¥15 matlab用simulink求解一个二阶微分方程,要求截图
  • ¥30 乘子法解约束最优化问题的matlab代码文件,最好有matlab代码文件
  • ¥15 写论文,需要数据支撑
  • ¥15 identifier of an instance of 类 was altered from xx to xx错误
  • ¥100 反编译微信小游戏求指导
  • ¥15 docker模式webrtc-streamer 无法播放公网rtsp
  • ¥15 学不会递归,理解不了汉诺塔参数变化
  • ¥15 基于图神经网络的COVID-19药物筛选研究
  • ¥30 软件自定义无线电该怎样使用