AJAX實現異步刷新

    一 以檢測數據庫中是否存在以及是否規範郵件爲例

 (1)jsp層

       function judgeEmailAvailable() {
      
        var regEmail = /^([a-zA-Z0-9_\.-])+@([a-zA-Z0-9_-])+(\.[a-zA-Z0-9_-])+/;
       var email = $("input[name='email']").val();
      if (email.length <1 || !regEmail.test(email)) {
     $.alert("email pattern is not right! ");
     return;

      }


        var uri = "${path}/arwen/userinfo/judgeEmailAvailable";
  var emailAvailable;
  $.ajax(
    {
        type:"POST",
        url:uri,
        data: {email:email},
        async:false,
            success:function(data){
           if (data) {
        if (data.result == false) {
        $.alert(data.message, {ok:function() {
      $("input[name='email']").val("");
      return emailAvailable = false;
        }});
        }  else {
        return emailAvailable = true;
        }
        }
    },
    error:function(data){
    //console.log("error------judge email controller error!" + data);
           }
    });
  return emailAvailable;

       }


(2)Controller層

        @RequestMapping("/judgeEmailAvailable")
@RequireLogin
@ResponseBody
public ResultResponse judgeEmailAvailable(String email) {


ResultResponse rr = new ResultResponse(false);
if (true == this.userInfoService.judgeUserEmailAvailable(email)) {
rr.setResult(true);
} else {
rr.setMessage("The email is already exist.");
}
return rr;
}

(3) Service層

       Boolean judgeUserEmailAvailable(String email);

        @Override
@Transactional
public Boolean judgeUserEmailAvailable(String email) {
List<UserInfo> userInfos = userInfoDAO.getUsersByEmail(email);
if (CollectionUtils.isNotEmpty(userInfos)) {
return false;
}
return true;
}


  (4) Dao層

         public List<UserInfo> getUsersByEmail(String email) {
                 DetachedCriteriaBuilder builder = DetachedCriteriaBuilder.instance(UserInfo.class);
                 builder.addEq("email", email);
                 return select(builder);
        }



二   檢測某一個屬性是否存在並且爲整數

(1)Dao層

       public Long findCountByPartNumber(String partNumber) {
DetachedCriteriaBuilder query = DetachedCriteriaBuilder.instance(Device.class);
query.addEq("partNumber", partNumber);
return this.count(query);
}


(2)Service層

         String validatePartNumber(String partNumber);

         @Override
 @Transactional
public String validatePartNumber(String partNumber) {
long count = deviceDao.findCountByPartNumber(partNumber);
if (count > 0) {
return "PartNumber can't be repeated";
}
return "";
  }

(3)Controller層

         @RequireLogin
 @RequestMapping(value="/checkPartNumber",method=RequestMethod.POST)
 @ResponseBody
 @AccessControl("device_manager_view")
 public ResultResponse validatePartNumber(String partNumber){
ResultResponse result=new ResultResponse();
if(StringUtils.isEmpty(partNumber)){
result.setMessage("partNumber can't be empty<br>");
}else{
String msg=deviceService.validatePartNumber(partNumber);
result.setMessage(msg);
}
return  result;
    }


(4)jsp層

                var msg="";
function validatePartNumber(){
if($("#partNumber").val()==''){
msg="請輸入Part Number <br>";
}else{
$.ajax({url:"${path}/arwen/device/checkPartNumber",
  type:"POST",
  async: false,
 data:{partNumber:$("#partNumber").val()},
 dataType:"json",
 success:function(data){
if(data&&data.message){
msg=data.message;
}else{
msg=data.message;
}
 }
});
}
}


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章