Javax验证大小注释行为不正确

时间:2014-10-14 03:01:15

标签: java validation annotations

所以我有一个像这样的简单类:

import javax.validation.constraints.Size;

public class Temail {

    @Size(min = 0, max = 10)
    private String json;

    public Temail(String json) {
        Validate.notEmpty(json, "json can't be empty");
        setJson(json);
    }

    public void setJson(String json) {
        this.json = json;
    }

    public String getJson() {
        return json;
    }

}

我期待的是,如果我运行new Temail("1234123123123");我希望它会抛出异常,但事实并非如此。我查看了这些惯例,它确实符合正确的惯例。那么这里的问题是什么?

1 个答案:

答案 0 :(得分:0)

似乎在约束无效时不应抛出异常。而是使用验证程序实例根据您定义的约束验证字段。所以,像这样:

Validator validator = Validation.buildDefaultValidatorFactory().getValidator();

Temail t = new Temail("123456789012345");

Set<ConstraintViolation<Temail>> constraintViolations = validator.validateProperty(t, "json");

查看更多示例和解释here