Validform验证修改密码

前端页面

* 原密码:
密码至少6个字符,最多18个字符!
* 新密码:
密码至少6个字符,最多18个字符!
* 确认密码:
两次输入的密码需一致

验证原密码后台代码

/*
*service方法,返回数据一定要是这种格式{"status":"y","info":"成功"}
*{"status":"n","info":"失败"}
*/
public Map checkPass(int id, String oldPwd) {
		TbAdmin admin = tbAdminMapper.selectByPrimaryKey(id);
		Map map=new HashMap<>();
		if(admin!=null) {
			String oldPassword = admin.getPassword();
			if(MD5Utils.md5(oldPwd).equals(oldPassword)) {
				map.put("status", "y");
				return map;
			}else {
				map.put("status", "n");
				map.put("info", "密码错误");
				return map;
			}
		}else {
			map.put("status", "n");
			map.put("info", "密码错误");
			return map;
		}
/*
*controller
*参数名称要写param
*/
@RequestMapping("/check/pass/{id}")
	@ResponseBody
	public Map checkPassword(@PathVariable Integer id,String param) {
		 Map result = adminService.checkPass(id, param);
		return result;
	}

提交表单js代码

$("#change_pwd").Validform({
	 btnSubmit : "#btn_sub",
     tiptype : 2,
     ajaxPost:true,
     showAllError : false,
    postonce : true,
	usePlugin:{
		passwordstrength:{
			minLen:6,//设置密码长度最小值,默认为0;
			maxLen:18,//设置密码长度最大值,默认为30;
			trigger:function(obj,error){
				if(error){
					obj.parent().next().find(".Validform_checktip").show();
					obj.parent().next().find(".passwordStrength").hide();
				}else{
					obj.parent().next().find(".Validform_checktip").hide();
					obj.parent().next().find(".passwordStrength").show();	
				}
			}
		}
	},
      callback:function(data){
    	  if(data.status=="y"){
    		  $.Hidemsg();
//此处有个小问题,不想要自带的弹窗(tiptype=4不显示那个弹窗,但是别的样式太丑)但是又不会改自带的样式,会闪一下那个提示窗,谁有好的方法,请告知,谢谢。
    		  layer.msg(data.info, {icon:1,time: 1000}, function(){ 
                  location.reload();//刷新页面 
                  });   
    	  }else{
    		  $.Hidemsg();
    		  layer.msg(data.info, {icon:5,time: 3000});
    	  }
    	var index =parent.$("#iframe").attr("src");
		parent.layer.close(index);
      }
});

提交表单后台代码

//service 返回数据格式同上
public Map updatePass(int id, String password) throws Exception {
		TbAdmin admin=new TbAdmin();
		String pwd = MD5Utils.md5(password);
		admin.setId(id);
		admin.setPassword(pwd);
		Map map=new HashMap<>();
		try {
			tbAdminMapper.updateByPrimaryKeySelective(admin);
			map.put("status", "y");
			map.put("info", "修改成功");
		} catch (Exception e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
			throw new RuntimeException();
		}		
		return map;
	}

//controller
@RequestMapping("/change/pass")
	@ResponseBody
	public Map changePassword( Integer id,String password) {
		Map map=new HashMap<>();
		try {
			map = adminService.updatePass(id, password);
		} catch (Exception e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
			map.put("status", "n");
			map.put("info", "修改失败");
		}
		return map;
	}

 

你可能感兴趣的:(Validform5.3.2,JAVA)