我没有找到合适的就final的json的validator,所以自己动手自己写了个。
地址:
自己进去提取下哈,使用起来很简单
在Model的类上面添加注解如:
@SuppressWarnings("serial") @V(value={ @ValidateGroup(name="createGroup", validates = { @Validate(field="username", type=ValidateType.NOEMPTY, msg="用户名不能为空"), @Validate(field="password", type=ValidateType.NOEMPTY, msg="用户密码不能为空"), @Validate(field="password", type=ValidateType.MINLENGTH, msg="密码不能少于6位", value="6"), //value: 最小长度 @Validate(field="password", type=ValidateType.MAXLENGTH, msg="密码不能多于20位", value="20"), //value: 最大长度 //@Validate(field="password", type=ValidateType.EQUALS, msg="两次密码输入不一致", value="repassword"), //value: 要比较的字段 @Validate(field="age", type=ValidateType.NULLABLE, msg="年龄不能为空"), @Validate(field="age", type=ValidateType.MIN, msg="年龄不能小于6", value="6"), //value: 最小值 @Validate(field="age", type=ValidateType.MAX, msg="年龄不能大约150", value="150"), //value: 最大值 @Validate(field="telephone", type=ValidateType.REG, msg="手机格式不正确", value="^((17[0-9])|(14[0-9])|(13[0-9])|(15[^4,\\\\D])|(18[0,5-9]))\\\\d{8}$"), }), @ValidateGroup(name="update", validates = { @Validate(field="id", type=ValidateType.NULLABLE, msg="用户名不能为空"), }) }) public class Account extends BaseAccount<Account> {}
需要使用验证的地方:
/** * 更新信息,这里注意删除:就只吧delete字段设置为:已删除 * @param ajax json: {id, 其他信息} {id:1, disable:"正常"} * @return * @return json BaseDto */ @Op("修改用户信息") @RequiresPermissions("account:edit") public void update(){ Account account = JsonTool.getObject(HttpKit.readData(getRequest()), Account.class); Validator validator = new Validator(); validator.exec(account, "createGroup"); if(validator.hasError()) { throw new BusinessException(BusinessErr.INVALID_PARAM, validator.getStringErrors()); } if(Tools.isNotNull(account.getPassword())){ account.setPassword(Tools.MD5(account.getPassword())); } if(accountService.update(account)){ renderJson(ViewDto.create(account.getId())); }else{ throw new BusinessException(BusinessErr.ERROR, res().get("update-err")); } }
效果: