登陆的时候 我想用 session 保存一个用户
HttpSession session = request.getSession();
UserForm userForm = (UserForm)form;
if("".equals(session.getAttribute("userForm"))){
userForm = (UserForm)form;
session.setAttribute("userForm",userForm);
}else{
userForm = (UserForm)session.getAttribute("userForm");
}
这样写session.getAttribute("userForm")会出错
后面 我想 出来
HttpSession session = request.getSession();
session.setAttribute("user","no");
UserForm userForm = (UserForm)form;
if(session.getAttribute("user").equals(no)){
userForm = (UserForm)form;
session.setAttribute("userForm",userForm);
         session.setAttribute("user","yes");
}if else(session.getAttribute("user").equals(yes)){
userForm = (UserForm)session.getAttribute("userForm");
}
但我  总觉得  这样写不太好   
大家都是 怎么思考的 ?

解决方案 »

  1.   

    我个人觉得 session.setAttribute("user","yes"); 这行代码没有什么用。
    既然一个用户登录了,你已经session.setAttribute("userForm",userForm); 了
    判断这个userFrom存不存在就可以了吧?
    if(session.getAttribute("userForm") != null){
    userForm = (UserForm)form;
    session.setAttribute("userForm",userForm);
    }else{
    userForm = (UserForm)session.getAttribute("userForm");

    这样就应该没问题了
      

  2.   

    session.getAttribute("userForm") 没有="" 的情况吗
      

  3.   

    if("".equals(session.getAttribute("userForm")))改造一下这一行就可以了,你这个相当于没有判断,session.getAttribute("userForm")永远不可能为""if(null==session.getAttribute("userForm"))这样就可以了
      

  4.   

    。不好意思啊    刚才    看到一个 BUG  以为 是这里了 
    现在没了  呵呵  
    我是从login.jsp 到 userlist.jsp这个 页面 
    public class UserAction extends Action {
    @Resource
    UserService userService; @Override
    public ActionForward execute(ActionMapping mapping, ActionForm form,
    HttpServletRequest request, HttpServletResponse response)
    throws Exception {
    HttpSession session = request.getSession();
    UserForm userForm; if (session.getAttribute("userForm") == null) {
    userForm = (UserForm) form;
    session.setAttribute("userForm", userForm);
    } else {
    userForm = (UserForm) session.getAttribute("userForm");
    }
    String kind = userService.getUserKind(userForm.getUserId(), userForm
    .getUserPassword());
    if (!"".equals(kind) && kind != null) {
    session.setAttribute("kind", kind);
    int maxresult = 4;
    int firstindex = (userForm.getPage() - 1) * maxresult;
    PageView<tbUser> pageView = new PageView<tbUser>(maxresult,
    userForm.getPage());
    pageView.setQueryResult(userService.getScrollData(maxresult,
    firstindex)); request.setAttribute("pageView", pageView);
    for (tbUser u : pageView.getRecords())
    request.setAttribute("a", u.getuserKind());
    return mapping.findForward("list");
    } else if ("".equals(kind) && kind == null) {
    request.setAttribute("message", "用户密码错误");
    return mapping.findForward("failure");
    }
    request.setAttribute("message", "请先登录!");
    return mapping.findForward("failure");
    }
    }
    这样   userForm  是被我  保存 下来  但是  我  UserForm  类里面本来一个 PAGE  属性 
    来控制  第几页 的
    但是 这个  又需要  变动的这个 怎么办!
    应该是我  设计  的 问题  我是  抄 网上的
    大家 是  怎么  设计的 ?
      

  5.   

    HttpSession session = request.getSession();
    UserForm userForm = (UserForm)form;
    session.setAttribute("userForm",userForm);没有了
      

  6.   

    。这个是 毕业设计  
    我水平  还不够  呵呵 
    HttpSession session = request.getSession();
    UserForm userForm = (UserForm) form; if (session.getAttribute("userForm") == null) {
    session.setAttribute("userForm", userForm);
    } else {
    int tpage = userForm.getPage();
    userForm = (UserForm) session.getAttribute("userForm");
    userForm.setPage(tpage);
    }
    我 这样 改  就 OK 了   
      

  7.   

    蛋黄说的很明白了嘛
    lz的意思是说,怎么让jsp页面动态的翻页么?
    如果是的话,就将page属性的值传到这个action里面 重新查询下就ok了