如何使用GWT Editor框架使用hibernate验证器验证整数

时间:2012-12-12 10:12:01

标签: java gwt hibernate-validator

我正在使用hibernate验证器和Editor框架来验证我的GWT项目中对DTO的输入。

我遇到的问题是用户在文本框中输入一个字符串,该字符串应该被验证为整数。我试图应用hibernate-validator注释来自动使其工作,但似乎我遗漏了一些东西。

我的DTO:

public class MyDto {  
   @Min(value = 1, message = "Radius must be at least 1 meter.")
   private int radius = 100;

   ...
}

我正在使用GWT IntegerBox读取半径的值,这在输入-1等值时可以正常工作,但在输入的值不是整数时则不行,例如“hi”。 / p>

我发现验证这一点的唯一方法是在IntegerBox上发出getValueOrThrow(),然后手动设置错误。有没有办法直接使用hibernate-validator注释表达这个?

我尝试过使用Integer和@NotNull,@ NotEmpty,@ Valid。

我当前的代码看起来像这样:

try {
    radiusBox.getValueOrThrow();
}
catch (final ParseException e) {
    radiusDecorator.setErrorText("Invalid radius value.");
    return;
}

final MyDto dto = editorDriver.flush();
final Set<ConstraintViolation<?>> violations = clientValidator.validate(dto);

if (!violations.isEmpty()) {
    editorDriver.setConstraintViolations(violations)
    return;
}

0 个答案:

没有答案