Unexpected end of input 和 Unexpected token var 和 Unexpected token ;

在写jsp的时候使用的一段代码一直调试,出现Unexpected token ; 错误.

所以最后把代码各种精简,得到了如下的测试示例代码

<%
String aaa="123";
String bbb="";
%>


<script type="text/javascript">
var a1 = <%=aaa%>
var a2 = "<%=aaa%>"
var a3 = <%=aaa%>;
var a4 = "<%=aaa%>";
var a5 = '<%=aaa%>'
var a6 = '<%=aaa%>';
var b1 = <%=bbb%>
var b2 = "<%=bbb%>"
var b3 = <%=bbb%>;
var b4 = "<%=bbb%>";


</script>

其中a1 到 a6各种没有问题(因为aaa的内容不是空啊),

但是当bbb字符串为空的时候

<script type="text/javascript">
var b1 = <%=bbb%>
</script>

单独b1或者b2 的时候 出现错误:  

Unexpected end of input

单独b3的时候出现错误:

Unexpected token ;

注意:token后面的空格和分号

b1和b4一起的时候出现

Unexpected token var

所以在Java转Js的字符串转换中,字符串变量赋值最好用如下的:

var b4 = "<%=bbb%>";

这样就保证了即使bbb字符串为空的时候也不会出现Unexpected的上述3个问题了.

原文地址:https://www.cnblogs.com/xzjxylophone/p/6598933.html