用户唯一性的校验

用户唯一性的校验,要确定用户校验的时机。要在用户添加或者修改完之后,立刻发送ajax请求,校验。

用户校验分两种情况,一种是新添加用户,直接判断是否存在该用户名即可。

                二种是编辑用户,首先用户是存在的,在校验的时候,要排除自己然后校验。

用到的hql语句:

public List<User> verify(String account, String id) {
		String sb = "FROM User WHERE account = ?";
		if (StringUtils.isNotBlank(id)) {
			sb += " and id != ?";
		}
		Query query = getSession().createQuery(sb);
		query.setParameter(0, account);
		if (StringUtils.isNotBlank(id)) {
			query.setParameter(1, id);
		}
		//query.list();//查询
		return query.list();
	}

使用ajax校验

var falgs = false;
    function doVerify(){
    	
    	//1.获取账号值
    	var account = $("#account").val();
    	//
    	if(account != ""){
    		//2.使用ajax获取
    		$.ajax({
    			url:"${basePath}nsfw/user_verify.action",
    			type:"post",
    			async:false,//同步获取   根据需求
    			data:{"user.account":account,"user.id":"${user.id}"},//EL表达式要放在双引号内,,,,注意
    			success:function(msg){
    				 //alert(msg);
    				if("true" != msg){
    					
    					falgs = true;//这个是没重复的
    					
    				}else{
    					
    					alert("账号已经存在,请重新输入别的账号");
    					$("#account").focus();
    					falgs = false;
    					
    				}
    				
    				
    			}
    			
    			
    		});
    		
    		/* $.ajax({
				url:"${basePath}nsfw/user_verifyAccount.action",
				data: {"user.account": account},
				type: "post",
				async: false,//非异步
				success: function(msg){
					if("true" != msg){
						//帐号已经存在
						alert("帐号已经存在。请使用其它帐号!");
						//定焦
						$("#account").focus();
						vResult = false;
					} else {
						vResult = true;
					}
				}
			}); */
    		
    		
    	}
    	
    }
    
    function doSubmit(){
    	//判断是否为空
    	
    	var name = $("#name").val();
    	if(name == ""){
    		alert("请输入姓名");
    		$("#name").focus();
    		return false;
    	}
    	
    	var account = $("#account").val();
    	if(account == ""){
    		alert("请输入账号");
    		$("#account").focus();
    		return false;
    	}
    	
    	
    	var passwd = $("#passwd").val();
    	if(passwd == ""){
    		alert("请输入密码");
    		$("#passwd").focus();
    		return false;
    	}
    	
    	doVerify();
    	
    	if(falgs){
    		
    		document.forms[0].submit();
    	}
    	
    	
    }
    
    
    </script>


action层设置返回的信息的类型:


public void verify(){
		//查询用户是否存在
		try {
			String msg = "false";
			List<User> verify = userService.verify(user.getAccount(),user.getId());
			if(verify.size()>0 && verify != null){
				msg = "true";//有重复deweitrue
				HttpServletResponse response = ServletActionContext.getResponse();
				response.setContentType("text/html");
				ServletOutputStream outputStream = response.getOutputStream();
				outputStream.write(msg.getBytes());
				outputStream.flush();
				outputStream.close();
			}
			
			
			
			//输出
		
		} catch (Exception e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}





  • 3
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值