网站的所有页面都会有登录前后模块的显示,都是通过判断session是否有值进行对display赋值的,本网站是在前端通过判断后用js进行的切换,感觉很累赘而且拖慢了网页速度,于是想到可不可以在后端判断完然后发送到前端直接控制display的值,于是成功了。
一般在网站上想控制模块的显示还是隐藏我们通常使用display:none或block来控制,所以我们的中心思想就是把none和block这两个值在后端获取到,这样就不用再在前端进行判断了,效率很高,下面把代码贴出来。
代码部分:
1、在所有的网页加载的时候都会经过拦截器,在springmvc中都会经过preHandle,所以这里就判断用户是否登录就行了,因为登陆后session中都会存放值,所以我们把值取出来进行判断就行了,值得注意的是,这个判断必须放在最前面//判断用户身份在session中是否存在
HttpSession session=request.getSession();
//session如果不存在就设置登录模块的值
if(session.getAttribute("username")==null){
//登陆前模块显示
session.setAttribute("loginPre", "block");
//登陆后模块隐藏
session.setAttribute("loginOver", "none");
}
2、登陆成功后在controller里直接添加session的值,这样就不用每次刷新页面就添加一次了//登陆成功后设置登录模块的值
session.setAttribute("loginPre", "none");
session.setAttribute("loginOver", "block");
3、将这两个值放到前端,用el表达式取出来即可
这样就可以了,然后给大家看看我以前的方法,就知道这个多么高效了
$(function(){
success();
});
function success(){
if(session.getAttribute("userInf")!=null){
User user=(User)session.getAttribute("userInf");
%>
$('.qww').css('display','none');
$('.qwq').css('display','block');
}else{
%>
$('.qww').css('display','block');
$('.qwq').css('display','none');
}
%>
}
你还没有登录,请先使用 QQ登录 或 注册!
文章评论
发表评论