一个if,else语句,即执行了,if,又执行了else导致这种结果的原因是什么啊~!

解决方案 »

  1.   

    if(user == null) {
    System.out.println("正在开始执行IF");
    //create new user.
    user = new User();
    int userId = ((Integer)sqlmap.queryForObject("getUserId")).intValue();
    user.setUserId(userId);
    user.setUserName(userName);
    user.setPassword(new MD5().getMD5ofStr(password));
    user.setFullName(fullName);
    user.setEmail(email);
    //SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd");
    //java.util.Date expDate = df.parse(expiredDate);
    if(expiredDate != null && !expiredDate.equals("")){
    System.out.println("正在添加时间。!");
    Date date = DateFormat.getDateInstance().parse(expiredDate);
    user.setExpiredDate(date);


    }
    else{
    System.out.println("时间没添!");
    }
    user.setCompanyId(Integer.parseInt(companyId));
    User loginUser = (User)wctx.getSession().getAttribute("currentUserInfo");
    //user.setCreateAdmin(loginUser.getUserName());
    user.setCreateAdmin("CDA");

    sqlmap.insert("createUser", user);

    HashMap map = new HashMap();
    map.put("userId", new Integer(userId));
    map.put("listId", "-1");
    sqlmap.insert("createProfile", map);
    //grant rights for user.
    String flag = "grant";
    grantUserRight(sqlmap, rawData, userId, Integer
    .parseInt(companyId), "raw_data", loginUser, null, flag);
    grantUserRight(sqlmap, rawReport, userId, Integer
    .parseInt(companyId), "raw_report", loginUser, null,
    flag);
    grantUserRight(sqlmap, rawFigure, userId, Integer
    .parseInt(companyId), "raw_figure", loginUser, null,
    flag);
    grantUserRight(sqlmap, resultData, userId, Integer
    .parseInt(companyId), "result_data", loginUser, null,
    flag);
    grantUserRight(sqlmap, resultReport, userId, Integer
    .parseInt(companyId), "result_report", loginUser, null,
    flag);
    grantUserRight(sqlmap, resultFigure, userId, Integer
    .parseInt(companyId), "result_figure", loginUser, null,
    flag);
    if(upload != null){
    System.out.println(upload+"if");
    grantUserRight(sqlmap, new String[] { upload }, userId, Integer
    .parseInt(companyId), "upload_data", loginUser, null,
    flag);
    }else{
    System.out.println("在这呢~");
    wctx.setAttribute("msg", "新建用户[" + userName + "]成功!");
    wctx.setAttribute("flag", "refresh");
    }


    }else{
    System.out.println("又执行了,else");
    wctx.setAttribute("msg", "用户 [" + userName + "]以存在!");
    }
      

  2.   

    就这个,大家给看看哪错了还有这个,其实这两个一样的,不过上面的乱了点~if(user == null) {
    //create new user.
    user = new User();
    int userId = ((Integer)sqlmap.queryForObject("getUserId")).intValue();
    user.setUserId(userId);
    user.setUserName(userName);
    user.setPassword(new MD5().getMD5ofStr(password));
    user.setFullName(fullName);
    user.setEmail(email);
    //SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd");
    //java.util.Date expDate = df.parse(expiredDate);
    if(expiredDate != null && !expiredDate.equals("")){
    Date date = DateFormat.getDateInstance().parse(expiredDate);
    user.setExpiredDate(date);
    } user.setCompanyId(Integer.parseInt(companyId));
    User loginUser = (User)wctx.getSession().getAttribute("currentUserInfo");
    //user.setCreateAdmin(loginUser.getUserName());
    user.setCreateAdmin("CDA");

    sqlmap.insert("createUser", user);

    HashMap map = new HashMap();
    map.put("userId", new Integer(userId));
    map.put("listId", "-1");
    sqlmap.insert("createProfile", map);
    //grant rights for user.
    String flag = "grant";
    grantUserRight(sqlmap, rawData, userId, Integer
    .parseInt(companyId), "raw_data", loginUser, null, flag);
    grantUserRight(sqlmap, rawReport, userId, Integer
    .parseInt(companyId), "raw_report", loginUser, null,
    flag);
    grantUserRight(sqlmap, rawFigure, userId, Integer
    .parseInt(companyId), "raw_figure", loginUser, null,
    flag);
    grantUserRight(sqlmap, resultData, userId, Integer
    .parseInt(companyId), "result_data", loginUser, null,
    flag);
    grantUserRight(sqlmap, resultReport, userId, Integer
    .parseInt(companyId), "result_report", loginUser, null,
    flag);
    grantUserRight(sqlmap, resultFigure, userId, Integer
    .parseInt(companyId), "result_figure", loginUser, null,
    flag);
    if(upload != null)
    System.out.println(upload+"if");
    grantUserRight(sqlmap, new String[] { upload }, userId, Integer
    .parseInt(companyId), "upload_data", loginUser, null,
    flag);
    wctx.setAttribute("msg", "新建用户[" + userName + "]成功!");
    wctx.setAttribute("flag", "refresh");
    }else{
    wctx.setAttribute("msg", "用户 [" + userName + "]以存在!");
    }

      

  3.   

    就是函数在执行if的时候又调用了这个函数,而这里user已经不等于null了
      

  4.   

    你程序为什么这么设计,我也不知道啊...
    你测试代码,debug下一步一步来,不就清楚了