葉明的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頁面怎么改啊

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


          網站導航:
           
          主站蜘蛛池模板: 永清县| 吉安县| 安远县| 柳河县| 惠安县| 新干县| 宜昌市| 黑水县| 陕西省| 永城市| 五华县| 宁安市| 新平| 英德市| 鄂伦春自治旗| 怀集县| 抚顺县| 乐都县| 偃师市| 若尔盖县| 修水县| 景洪市| 沈阳市| 安阳县| 大冶市| 安西县| 兴隆县| 蛟河市| 资溪县| 光泽县| 佛冈县| 兴文县| 石首市| 衡阳市| 浦城县| 龙井市| 时尚| 沁源县| 个旧市| 兖州市| 长治市|