【JSP】jQuery Deferred exception successed is not defined

  • 我用<%=%>输出在<%%>内定义的变量apply,<%=apply%>的值为failed,然后黄色警告JQuery.Deferred exception: successedis not defined ReferenceError: failed is not define at HTMLDocument.<anonymous>(http://localhost:8080/applyTutorServlet?stuID=20171532:86:30)

  • 代码:

    <%
    String apply=(String) request.getAttribute("applyStatus");
    System.out.println("JSPapply="+apply);
    %>
    var applyStatus =<%=apply%>;
    
    if (<%=apply%> == "failed"){} //这句报错
    

    控制台输出JSPapply=failed没问题,浏览器控制台输出<%=apply%>

    是null,输出其类型是undefined

    点击错误行86

    看着没问题,但实际上这里由于var变量没有类型,赋值必须要加引号,表示这是个字符串。

    加上引号即可

    var applyStatus =<%="\""+apply+"\""%>;
    


  • 小结:我以为,在<%%>内定义的apply是String类型的,输出直接就是字符串,但实际却不是。

    以后用<%=%>输出在<%%>内定义的变量时,一定要注意类型,如果是字符串要先加引号。

posted @ 2020-06-17 15:09  musecho  阅读(299)  评论(0编辑  收藏  举报