对实体类字段的校验

22 篇文章 0 订阅
import javax.validation.ConstraintViolation;
import javax.validation.Validator;
import java.util.HashMap;
import java.util.Map;
import java.util.Set;

@Controller
@RequestMapping(value = "/kafka")
public class KafkaController {

   //import javax.validation.Validator;
    @Autowired
    private Validator validator;

    @RequestMapping(value = "/msg")
    public Map<String,String> ty(){
        KafkaMsg kafka = new KafkaMsg();
        kafka.setUuid(null);
        kafka.setUsername("jksjasiisijwijddiwjdiwjdijwi");
        kafka.setSexhj("100000");
        Set<ConstraintViolation<KafkaMsg>> validate = validator.validate(kafka);
        Map<String, String> errors = getErrors(validate);
        return errors;
    }

    private<T>Map<String,String> getErrors(Set<ConstraintViolation<KafkaMsg>> set){
       Map<String,String> map = new HashMap<>();
       for (ConstraintViolation<?> item : set){
         map.put(item.getPropertyPath().toString(),item.getMessage());
       }
       return map;
    }
}
import lombok.Data;
import org.hibernate.validator.constraints.Length;

import javax.validation.constraints.NotBlank;
import java.io.Serializable;

@Data
public class KafkaMsg implements Serializable {

    @NotBlank
    @Length(max = 5,message = "长度不能超过:{max}")
    private String uuid;


    @Length(max = 5,message = "长度不能超过:{max}")
    private String username;

    @Length(max = 2,message = "长度不能超过:{max}")
    private String sexhj;

  //删除时间  yyyy-MM-dd HH:mm:ss 时间
    @Pattern(regexp = "^((([0-9]{3}[1-9]|[0-9]{2}[1-9][0-9]{1}|[0-9]{1}[1-9][0-9]{2}|[1-9][0-9]{3})-(((0[13578]|1[02])-(0[1-9]|[12][0-9]|3[01]))|((0[469]|11)-(0[1-9]|[12][0-9]|30))|(02-(0[1-9]|[1][0-9]|2[0-8]))))|((([0-9]{2})(0[48]|[2468][048]|[13579][26])|((0[48]|[2468][048]|[3579][26])00))-02-29))\\s+([0-1]?[0-9]|2[0-3]):([0-5][0-9]):([0-5][0-9])$",message = "时间的数据格式不正确")
    private String delDate;

}

delDate 这个存储的时候可以为null,也不会出问题

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值