星空网 > 软件开发 > Java

SSH框架中session问题

  使用SSH框架做项目的时候避免不了使用session,有时候使用session会很方便,但是有时候也是个很麻烦的事情,我今天就遇到一个这样的情况,搞的我很不爽,还是记录一下吧。

  首先是登录的时候,如果用户名密码正确就把该用户的信息存到session中去,

//登录成功后将用户信息保存到session中      SessionUtils.setSysUserToSession(request, sysUser);

/**   * 保存当前登录用户的信息到session中去   * @param request   * @param sysUser   */  public static void setSysUserToSession(HttpServletRequest request,      SysUser sysUser) {    HttpSession session=request.getSession();    if(sysUser==null){      return;    }    session.setAttribute("sysUserKey",sysUser);  }

登录成功后,在一个页面上需要弹出一个模态窗口,在模态窗口上添加一条部门信息,然后关闭模态窗口,在页面上显示出来数据列表。

显示数据列表采用的是JQUERY和AJAX联合异步加载,就是在$(function(){})中使用ajax从后台取到数据,然后以JSON的方式返回到前台,在将具体的数据给表格对应的列。

  开始的时候弹出模态窗口没有问题,添加一条数据也没有问题,但是关闭模态窗口之后数据列表的数据并没有更新,必须刷新之后才可以再数据列表中看到信添加的一条数据,

刚开始还以为是弹出模态窗口的问题,也以为是页面缓存的问题,反正就是各种纠结啊,但是后来无意识的看到了后台代码才想到了问题的关键,下面先上解决的代码:

<SCRIPT type="text/javascript">    $(function(){      //alert("0000");      //异步加载组织信息      $.ajax({        url: "user/organizaAction_selectAllOrg.do",        type: "post",        dataType: "json",        cache : false,        success: function(da){          $("#orgTbody").empty();          $.each(da,function(index,value){            if(value.owner==value.currentUser){            var  tr="<tr>" +                  "<td>"+value.orgname+"</td>" +                  "<td>"+value.owner+"</td>" +                  "<td>"+value.orgremark+"</td>" +                  "<td>" +                    "<a class='btn btn-default' onclick='showModal("+value.id+")' href='javascript:;'><i class='fa fa-cog'></i> 设置</a>" +                    "<a class='btn btn-default' href='javascript:;' onclick='showUser("+value.id+")'><i class='fa fa-male'></i> 组织成员</a>" +                  "</td>" +                "</tr>";            }else{            var  tr="<tr>" +                  "<td>"+value.orgname+"</td>" +                  "<td>"+value.owner+"</td>" +                  "<td>"+value.orgremark+"</td>" +                  "<td>" +                    "<a class='btn btn-default' href='javascript:;'><i class='fa fa-sign-in'></i> 退出</a>" +                    "<a class='btn btn-default' href='javascript:;'><i class='fa fa-male'></i> 组织成员</a>" +                  "</td>" +                "</tr>";            }            $("#orgTbody").append(tr);          });        }      });    });  </SCRIPT>

这个是异步加载的js

public void selectAllOrg(){    SysUser sysUser=SessionUtils.getSysUserFromSession(request);        Integer id=sysUser.getId();    SysUser curUser=sysUserService.findSysUserById(id);        Set<Organization> setList=curUser.getOrganizations();    OrgUtil org;    List<OrgUtil> orgList=new ArrayList<OrgUtil>();    for(Organization o:setList){      org=new OrgUtil();      org.setId(o.getId());      org.setOrgname(o.getOrgname());      org.setOrgremark(o.getOrgremark());      org.setOwner(o.getOwner());      org.setCurrentUser(sysUser.getCnname());      orgList.add(org);    }    writeJson(orgList);  }

这个是后台的查找全部信息的代码,关键在哪呢?就在

SysUser sysUser=SessionUtils.getSysUserFromSession(request);        Integer id=sysUser.getId();    SysUser curUser=sysUserService.findSysUserById(id);

这三行代码中,开始的时候是没有查找用户的这两行代码的,直接从session中取出的用户,然后根据取出的用户来查找。

之所以查找不出来是因为:从session中拿过来的用户是登录时候的用户,此时这个用户并没有跟你新建的部门关联,所以是查找不到新建的部门的,只有重新load一下用户才能拿到新建的部门信  息。

      恩,暂时就是这样了。

 




原标题:SSH框架中session问题

关键词:SSH

SSH
*特别声明:以上内容来自于网络收集,著作权属原作者所有,如有侵权,请联系我们: admin#shaoqun.com (#换成@)。

云集为什么能上市,而跨境电商分销平台却不成气候?:https://www.ikjzd.com/articles/90814
5月西方婚礼季拉开序幕,中国卖家如何在Wish分一杯羹?:https://www.ikjzd.com/articles/90815
卖家故事 | 如何做到Shopee台湾女装Top 10:https://www.ikjzd.com/articles/90817
深圳手配大卖净利暴增超5倍,欧洲站业绩逆势猛涨:https://www.ikjzd.com/articles/90818
川普又有新操作!关税提至25%?跨境企业要注意了:https://www.ikjzd.com/articles/90819
2018年终旺季热门品类及节日营销攻略,教你赚足一季!:https://www.ikjzd.com/articles/9082
宠物梳专利查询分析:https://www.kjdsnews.com/a/1842293.html
温州旧货市场有玻璃柜卖吗?:https://www.vstour.cn/a/411246.html
相关文章
我的浏览记录
最新相关资讯
海外公司注册 | 跨境电商服务平台 | 深圳旅行社 | 东南亚物流