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;
}
 }
});
}
}


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值