巧用Hibernate Validator校验日期格式

首先申明这是个野路子
Hibernate validator常用注解中并没有提供直接校验日期格式的注解,所以,一般都是通过自定义校验器来完成。但是,作为一个懒人,不想写那么多代码…
直接上代码

controller层

@RequestMapping(value = "/demo2")
    @ResponseBody
    public String demo2(@RequestBody @Valid DemoModel demoModel, BindingResult result){
        StringBuilder sb = new StringBuilder();
        sb.append("======================");
        if (result.hasErrors()){
            for (ObjectError error :result.getAllErrors()){
                sb.append(error.getDefaultMessage())
                    .append("\n");
            }
        }
        return sb.toString();
    }

参数

public class DemoModel {
    
    @NotNull(message = "日期格式不正确")
    private String date;

    public String getDate() {
        return date;
    }

    public void setDate(String date) {
        SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMdd");
        try {
            sdf.parse(date);
            this.date = date;
        } catch (ParseException e) {
            e.printStackTrace();
            this.date = null;
        }
    }
}

执行结果:
巧用Hibernate Validator校验日期格式_第1张图片
类似的,可以通过这种方式解决其他校验问题。

你可能感兴趣的:(springboot)