【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类型的,输出直接就是字符串,但实际却不是。以后用
<%=%>
输出在<%%>
内定义的变量时,一定要注意类型,如果是字符串要先加引号。