Java Bean Validation数字格式问题

时间:2014-08-12 10:16:18

标签: java java-ee bean-validation

我正在努力使用Bean Validation来验证Double属性。

我的应用程序将AngularJS与Java EE(JAX-RS / JAXB)一起用于后端。

我的班级看起来像:

public class MyClass {

  @NotNull
  Double value;

  // empty constructor, getters, setters

}

如果我发送到服务器,MyClass的JSON表示为:

{ value: '' }

或者

{ value: '456q' }

我最终对值“必须不为空”的验证约束违规。

我希望第二个JSON表示的类型格式问题的验证约束。

在客户端验证旁边有没有办法做到这一点?

2 个答案:

答案 0 :(得分:1)

您发送的值是字符串类型。尝试发送

{ value: 456 }

现在它是一个数字,验证应该可以正常工作。

答案 1 :(得分:0)

那是因为你的JSON是作为字符串发送的,然后被转换为Double(使用Double.valueOf("456q")之类的东西),而javax.validation不知道该字符串。

但是,它仍然被检查为一个数字(在无效的情况下返回null)。

如果您确实想要进行格式检查,那么您应该将值存储为String,并在需要时将其转换为Double。