我正在努力使用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表示的类型格式问题的验证约束。
在客户端验证旁边有没有办法做到这一点?
答案 0 :(得分:1)
您发送的值是字符串类型。尝试发送
{ value: 456 }
现在它是一个数字,验证应该可以正常工作。
答案 1 :(得分:0)
那是因为你的JSON是作为字符串发送的,然后被转换为Double(使用Double.valueOf("456q")
之类的东西),而javax.validation不知道该字符串。
但是,它仍然被检查为一个数字(在无效的情况下返回null)。
如果您确实想要进行格式检查,那么您应该将值存储为String,并在需要时将其转换为Double。