日期:2014-05-16 浏览次数:20330 次
做了一个管理系统,一个登录页面,基本思路是这样的,在登录页面上输入用户名密码之后,跳转到主页面,因为主页面上要根据不同的用户动态生成不同的菜单项。所以需要传递这个用户名。考虑在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,""); }?