葉明的javablog

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

          struts2遇到的怪問題

          Posted on 2007-12-05 09:35 天空蒼茫 閱讀(1863) 評論(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頁面怎么改啊

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


          網站導航:
           
          主站蜘蛛池模板: 丰县| 永定县| 博乐市| 东宁县| 涞水县| 赤壁市| 九江市| 资兴市| 武陟县| 东兰县| 古丈县| 招远市| 马鞍山市| 玉环县| 北票市| 盈江县| 中牟县| 博湖县| 舞阳县| 普兰县| 白山市| 大新县| 清徐县| 分宜县| 太康县| 越西县| 广河县| 武穴市| 彭山县| 佛坪县| 额济纳旗| 固镇县| 黄浦区| 陈巴尔虎旗| 云安县| 双峰县| 北宁市| 曲周县| 六枝特区| 洛南县| 缙云县|