在做校工会系统时,遇到一个问题,登陆成功后,spring security会存放用户信息到session中,用户执行某个功能的时候,需要用到用户的信息,所以此时需要从session里取,但客户端的js无法直接取服务器的session的值,所以只好通过jsp来间接获取。那么问题来了,如何将jsp的变量,传递给js?网上的方法多得是。。。。但我这里统一编码utf-8,所以他们说的方法都没用。。。。。。
举个栗子,jsp:
<script type="text/javascript" charset="UTF-8">
<%
String eng="english";
String cn="中文";
%>
var var1=<%=eng%>;
var var2=<%=cn%>;
</script>
js:
alert(var1);
alert(var2);
乍一看还没什么问题。。。。alert的时候问题就来了。。。输出的是undefined。。。
解决方法:
将jsp中的最后两句改成:
var var1="<%=eng%>";
var var2="<%=cn%>";
这个问题真是哭笑不得,解决的方法竟然是给jsp变量加上一对双引号就可以了!估计是因为js是弱类型语言。。。转换过程中出错了。。。