2015-04-07 50 views
0

如果出現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"那麼它給執行異常

有沒有辦法做到通過@annotaions檢查?

或任何其他建議的方式? 我收到錯誤

play.api.Application $$匿名$ 1:執行異常[RuntimeException的: com.fasterx ml.jackson.databind.exc.InvalidFormatException:不能 從構建的叔實例字符串值「戈文德」:不是有效的整 值

+0

認爲你必須選擇使用模式(java.lang.String中雷傑x)方法來找出它的字符串還是全部的整數。請查看以下網址以獲取更多信息:https://www.playframework.com/documentation/2.0/api/java/play/data/validation/Constraints.html – Subbu

回答

0

對於正整數嘗試

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

不適用於我,仍然出現相同的錯誤 –

+0

最大工作?如果用戶發送30000會發生什麼?你如何引用驗證? –

+0

加入'pattern'後Max和Min也停止工作 –