我没有找到合适的就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"));
}
}效果: