关于“未结束的字符串常量”

关于“未结束的字符串常量”今天在做项目时,总出现“未结束的字符串常量”错误,害我折腾了半天。事情是这样的:我在Action设了个数据request.setAttribute(“sendOkMsg”,sendOkMsg);,想要在JavaScript中显示出来alert(“<%=(String)request.getAttribute(“sendOkMsg”)%&…

关于“未结束的字符串常量”

   今天在做项目时,总出现“未结束的字符串常量”错误,害我折腾了半天。事情是这样的:我在Action设了个数据 request.setAttribute(“sendOkMsg”, sendOkMsg);,想要在JavaScript中显示出来 alert(“<%=(String)request.getAttribute(“sendOkMsg”)%>”),结果总出现前面说的这个错误。更另人纳闷的是,我这样做 <%System.out.println((String)request.getAttribute(“sendOkMsg”));%> ,居然能在控制台正常打印出信息!
      查阅了大量资料,终于真相大白,现列出来,和大家共享:
 
造成“未结束的字符串常量”错误的原因有好多种,下面列出三种:


1.JAVASCRIPT引用时,使用的字符语言不一致.

    比如:<script type=”text/javascript” src=”xxx.js” charset=”UTF-8″>.xxx.js文件内部使用的是GB2312的格式,外面调用使用的是UTF-8,所以文件内部部分特殊字符因为格式不一致,出现乱码,造成此原因.


2.JAVASCRIPT输出HTML字符时,前后标记不匹配.
    这种比较常见,往往在输出字符串时,出现单引号(’)或双引号(”)不配对,或者是在document.write()的时候,没有正确输出单引号(’)或双引号(”)


3.参数内出现HTML标记语言或包含换行符

    我今天所遇到的是这种情况.因为我所得到的数据以参数形式传给一函数,结果该数据里包含换行符,造成了此错误.如:一般测试时只使用单行的数据,是正常的,未出现这个错误,.当测试时使用多行数据,并使用回车链换行,就出行了此错误.因为里面包含了换行符

 

    
对于第3种情况,我的解决方法是:

法一:
不直接将该数据以参数形式传递,而是先将其赋值在一个隐藏的文本内,需要调用的函数里只需读取该文本里的内容即可.
 

法二:传没有特殊符号的信息,到JS处解析拼组。


     本文转自NightWolves 51CTO博客,原文链接:
http://blog.51cto.com/yangfei520/348278
,如需转载请自行联系原作者

今天的文章关于“未结束的字符串常量”分享到此就结束了,感谢您的阅读,如果确实帮到您,您可以动动手指转发给其他人。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:https://bianchenghao.cn/29335.html

(0)
编程小号编程小号

相关推荐

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注