验证没有有效的Integer值

时间:2015-04-07 12:10:06

标签: java validation playframework annotations integer

如果string出现,那么这些验证是不够的。

import play.data.validation.Constraints.Max;
import play.data.validation.Constraints.Min;
import play.data.validation.Constraints.Required;   

@Required
@Min(1)
@Max(500)
private Integer capacity;

我如何检查

Set<ConstraintViolation<Object>> violations = (Set) play.data.validation.Validation.getValidator().validate(object, Default.class);
        for (ConstraintViolation<Object> violation : violations) {
            System.out.println(violation.getPropertyPath().iterator().next().getName());
            System.out.println(violation.getMessageTemplate());
        }

soppose用户发送"govind"代替Integer值,然后给出执行异常

有没有办法通过@annotaions进行检查?

或任何其他建议的方式? 我收到错误

  

play.api.Application $$ anon $ 1:执行异常[[RuntimeException:   com.fasterx ml.jackson.databind.exc.InvalidFormatException:不能   从String值构造in t的实例&#39; govind&#39;:不是有效的整数   值

1 个答案:

答案 0 :(得分:0)

对于正整数,请尝试

@Pattern(value = "[0-9]+", message = "The value must only contain digits.")