最近在做项目,在用spring:message标签做资源国际化的时候,碰到个诡异的问题,着实让人头疼一阵。
在js代码中,嵌入使用spring:message标签做消息提醒的时候,在中文环境下,一点问题没有,但一切换到英文环境,出现JS错误。在chrome浏览器中调试,出现“Uncaught SyntaxError: Unexpected identifier”错误。JS代码如下:
var promptMsg = function(msg) { ........... } $(function($) { ............. promptMsg('<spring:message code="label.xxxxx.message"></spring:message>'); ............ });
单双引号?未定义变量?传值错误?......没有啊。关键中文环境对的,怎么引用英文资源的时候,就出错了。
就在毫无头绪的时候,翻看了下引用的英文资源文件,发现英文资源文件有一行“label.xxxxx.message=.......didn't .....”。看到这恍然大悟,原来是英文资源的这个单引号造成了传递的字符串和原作为变量引用的单引号配对错误。
修改“didn't”为“did not”,问题解决。