首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >JSR303- javax.validation -验证日期

JSR303- javax.validation -验证日期
EN

Stack Overflow用户
提问于 2011-01-15 03:04:14
回答 1查看 33.4K关注 0票数 8

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

代码语言:javascript
复制
import javax.validation.constraints.NotNull;
import javax.validation.constraints.Size;
...
@NotNull
@Size(min = 1, max = 255)
private String myString;

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

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

代码语言:javascript
复制
@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,一个正则表达式?!

提前感谢您的帮助,致以最好的问候。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2011-01-15 03:31:24

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

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

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4694863

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档