javax.validation

我有一个Java EE应用程序,我想验证日期。 用一个字符串我这样做:

import javax.validation.constraints.NotNull;
import javax.validation.constraints.Size;
...
@NotNull
@Size(min = 1, max = 255)
private String myString;

但是现在我有两个我想要验证的日期。 用户可以在前端系统中的文本字段中写入一个字符串,通过JSON传输(我必须使用文本字段,我不能使用日期选择器)。

所以我的后端确实在我的域类中有这个:

@DateTimeFormat(pattern = "dd.MM.yy")
@Temporal(value=TemporalType.TIMESTAMP)
private Date myStartDate;

@DateTimeFormat(pattern = "dd.MM.yy")
@Temporal(value=TemporalType.TIMESTAMP)
private Date myEndDate;

我想验证格式“dd.MM.yyyy”。 如何才能做到这一点?

而且,我不这么认为,但有没有自动验证来检查开始日期是否在结束日期之前? 我只找到@Future@Past

所以唯一的解决方案是使用@Pattern,一个正则表达式?!

谢谢你的帮助,最好的问候。


@DateTimeFormat用于Web数据绑定期间,将请求参数映射到对象上时(假设您使用<mvc:annotation-driven/>或手动启用了它)。将JSON反序列化为对象时通常不会使用它。 你如何阅读你的JSON? 你用什么来反序列化它? 在格式化之后,您无法验证java Date对象,您必须在反序列化之前先检查一下。

没有内置多字段约束。如果要比较对象上的两个属性,则需要编写自己的类型级别约束。

链接地址: http://www.djcxy.com/p/4323.html

上一篇: javax.validation

下一篇: FSEvents and copying large files