我有一个Java应用程序,我想验证一个日期。通过一个字符串,我可以这样做:
import javax.validation.constraints.NotNull;
import javax.validation.constraints.Size;
...
@NotNull
@Size(min = 1, max = 255)
private String myString;但现在我有两个日期要验证。用户可以在前端系统中在文本字段中写入字符串,该字符串将通过JSON传输(我必须使用文本字段,我不能使用datepicker)。
所以我的后端在我的域类中有这个:
@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,一个正则表达式?!
提前感谢您的帮助,致以最好的问候。
发布于 2011-01-15 03:31:24
在将请求参数映射到对象时,@DateTimeFormat将在web数据绑定期间使用(假设您已通过<mvc:annotation-driven/>或手动启用)。在将JSON反序列化为对象时,通常不会使用它。你是如何读入你的JSON的?你用什么来反序列化它?你不能在格式化后验证java Date对象,你必须在反序列化之前进行检查。
没有内置的多字段约束。如果你想比较一个对象的两个属性,你会想要编写你自己的类型级别约束。
https://stackoverflow.com/questions/4694863
复制相似问题