日期:2014-05-16  浏览次数:20330 次

关于用js获取session的问题

做了一个管理系统,一个登录页面,基本思路是这样的,在登录页面上输入用户名密码之后,跳转到主页面,因为主页面上要根据不同的用户动态生成不同的菜单项。所以需要传递这个用户名。考虑在action中将用户名写到session中去,然后在前台取出来,思路我觉得没问题,但是有一个一直没法解决的地方是放到session中的中文用户名,取出来乱码,想了好多办法还是不行。最后采用了隐藏域。即先把session中要取的值放到隐藏域中,然后再用js获取这个隐藏域的值。如下所示:

  <input id="currentusername" type="hidden" value="<s:property value="#session.username"/>">	
  <script type="text/javascript">
  	var currentusername=document.getElementById('currentusername').value;
  	currentusername=trim(currentusername.toString());
	if(currentusername == '' || currentusername.length <= 0){location = '/wscm/login.jsp';}  	
  </script>
?

页面中采用了truts2的标签。

注意上面代码中的trim,原来以为js中会有这样的去取首尾空字符串的函数,结果没有。只得自己写一个,也是从网上找的。

如下:

function trim(str){  //删除左右两端的空格
 return str.replace(/(^\s*)|(\s*$)/g, "");
}
function ltrim(str){  //删除左边的空格
 return str.replace(/(^\s*)/g,"");
}
function rtrim(str){  //删除右边的空格
 return str.replace(/(\s*$)/g,"");
}
?