葉明的javablog

          java學習天堂,個人關于其他blog:blog.javaworker.cn,歡迎大家訪問
          posts - 64, comments - 50, trackbacks - 0, articles - 3

          struts2遇到的怪問題

          Posted on 2007-12-05 09:35 天空蒼茫 閱讀(1862) 評論(4)  編輯  收藏 所屬分類: struts2研究
          最近學習struts2,以前曾經學習過webwork2.2,因此學習起來感覺還是蠻快的,不過,最近遇到一個問題。調試了好多天,終于搞定了,問題描述:(我做的是一個登陸)
          首先輸入用戶名、密碼和驗證碼,如果有任何一個輸入錯誤,action執行后,返回到登陸頁面,再次修改用戶名、密碼和驗證碼后,在次提交。系統竟然沒有反應,
          錯誤前代碼:

              if(admin.getSadminName()==null||admin.getSadminName().length() < 1) {
                      addFieldError("admin.sadminName", "用戶名錯誤!");
                      return INPUT;
                  }
                  if(admin.getSadminPass()==null||admin.getSadminPass().length() < 1) {
                      addFieldError("admin.sadminPass", "密碼錯誤!");
                      return INPUT;
                  }
                  if(vn==null||vn.length()<1) {
                      addFieldError("vn", "驗證碼輸入錯誤!");
                      return INPUT;
                  }
                  String ValidateNumber = sessionMap.get("ValidateNumber").toString();
                  logger.info("ValidateNumber="+ValidateNumber);
                  logger.info("vn="+vn);
                  if(ValidateNumber==null||ValidateNumber.length()<1) {
                      addFieldError("vn", "驗證碼baocun輸入錯誤!");
                      return INPUT;
                  }
                  if(ValidateNumber.equalsIgnoreCase(vn)==false) {
                      addFieldError("vn", "驗證碼輸11入錯誤!");
                      return INPUT;
                  } 
                  Tadmin cAdmin = adminService.validateAdmin(admin.getSadminName(),MD5.getString(admin.getSadminPass()));
                  if(cAdmin==null) {
                      addFieldError("admin.sadminName", "用戶名或者密碼錯誤");
                      System.out.println("用戶名密碼錯誤");
                      return INPUT;
                  }
                  sessionMap.put(NewsUtil.ADMIN_USERKEY, cAdmin);
                  return SUCCESS;
          如果是這樣的。action只能執行一次,好像action中的參數一直沒有釋放,所以再次提交,action一直處于運行狀態,再次提交,系統不會改變。
          如果修改成
              //檢查用戶名是不是存在
                  if(NewsUtil.checkNull(admin.getSadminName())){
                      //addFieldError("admin.sadminName", "您輸入的用戶名有錯誤");
                      //actionMessage.
                      addActionMessage("您輸入的用戶名有錯誤");
                      System.out.println("您輸入的用戶名有錯誤");
                      return INPUT;
                  }
                  //檢查密碼是不是空或者null
                  if(NewsUtil.checkNull(admin.getSadminPass())){
                      //addFieldError("admin.sadminPass", "您輸入的密碼不正確");
                      System.out.println("您輸入的密碼不正確");
                      return INPUT;
                  }
                  if(NewsUtil.checkNull(vn)){
                      //addFieldError("vn", "您輸入驗證碼錯誤");
                      System.out.println("您輸入驗證碼錯誤");
                      return INPUT;
                  }
                  String validateNumber = (String)SessionMap.get("ValidateNumber");
                  if(NewsUtil.checkNull(validateNumber)){
                      //addFieldError("vn", "你的驗證碼不正確。請重新輸入");
                      System.out.println("你的驗證碼不正確。請重新輸入");
                      return INPUT;
                  }
                  if(validateNumber.equalsIgnoreCase(vn)==false){
                      //addFieldError("vn", "您輸入的驗證碼不正確。請重新輸入");
                      System.out.println("您輸入的驗證碼不正確。請重新輸入");
                      return INPUT;
                  }
                  Tadmin cAdmin = adminService.validate(admin.getSadminName(), MD5.getString(admin.getSadminPass()));
                  if(cAdmin == null){
                      //addFieldError("admin.sadminName", "對不起,您輸入的用戶名或者密碼有問題");
                      System.out.println("對不起,您輸入的用戶名或者密碼有問題");
                      return INPUT;
                  }
                  //開始更新用戶登陸信息的更新
                  cAdmin.setIloginTime(cAdmin.getIloginTime()+1);
                  //cAdmin.setSlastLoginIp(validateNumber)
                  cAdmin.setSlastLoginTime(new Date());
                  adminService.update(cAdmin);
                  SessionMap.put(ShopUtil.TADMIN_LOGINED_KEY, cAdmin);
                  return SUCCESS;
          就OKl了,我在懷疑是不是我使用的版本中有這樣的一個bug,

          Feedback

          # re: struts2遇到的怪問題[未登錄]  回復  更多評論   

          2007-12-05 12:49 by gaga
          關注..

          # re: struts2遇到的怪問題  回復  更多評論   

          2008-01-16 08:51 by lovajava_ye
          問題找到了 addFieldError 通常是用到validate()方法里的

          # re: struts2遇到的怪問題  回復  更多評論   

          2008-05-10 21:29 by sss
          我的頁面也是這樣,換成addActionMessage就都好了,
          但是這是怎么搞的啊??
          沒道理

          # re: struts2遇到的怪問題  回復  更多評論   

          2008-07-09 13:29 by cvxv
          那jsp頁面怎么改啊

          只有注冊用戶登錄后才能發表評論。


          網站導航:
           
          主站蜘蛛池模板: 汤原县| 留坝县| 闽清县| 扎鲁特旗| 宾川县| 甘谷县| 教育| 张家口市| 偏关县| 嘉善县| 嘉荫县| 山西省| 隆化县| 都江堰市| 龙州县| 常山县| 塘沽区| 美姑县| 大余县| 莎车县| 江北区| 万宁市| 女性| 长海县| 湖北省| 太白县| 温宿县| 麦盖提县| 开原市| 喀喇沁旗| 明光市| 永泰县| 闽侯县| 浦东新区| 黑山县| 行唐县| 临泽县| 渭源县| 定安县| 商城县| 龙井市|