Java 两个日期字段之间的Spring验证?

Java 两个日期字段之间的Spring验证?,java,spring,hibernate-validator,spring-validator,Java,Spring,Hibernate Validator,Spring Validator,在我的Spring应用程序中,我使用Hibernate验证器进行验证 当我做一些简单的验证时,比如@NotEmpty,@Email。。我工作很轻松 但当谈到日期字段时,给出问题 问题是在我的Jsp页面中,我得到的值类型为字符串,然后我将字符串转换为日期 听说是我的例子 @NotEmpty(message = "Write Some Description") private String description; private String fromDateMonth; private S

在我的Spring应用程序中,我使用
Hibernate验证器
进行验证

当我做一些简单的验证时,比如
@NotEmpty
@Email
。。我工作很轻松

但当谈到日期字段时,给出问题

问题是在我的Jsp页面中,我得到的值类型为字符串,然后我将字符串转换为日期

听说是我的例子

@NotEmpty(message = "Write Some Description")
private String description;

private String fromDateMonth;

private String fromDateYear;

private String toDateMonth;

private String toDateYear;
我正在我的控制器类中将此
从DateMonth
从DateYear
转换为日期

那么他们是否有可能在控制器类中添加验证器注释呢


另一方面,我应该听到什么?给我一些建议…

为了确保可以在控制器中使用Bean验证,只需像在模型中那样在属性上添加注释即可。
但最好的方法是在模型中使用日期类型而不是字符串。

如果要验证fromDate是否早于toDate,可以编写自定义验证程序来执行此多字段验证。您编写了一个自定义验证器,还定义了一个自定义注释,该注释放置在正在验证的bean上

有关更多信息,请参阅以下答案


根据问题显示的次数,我得出结论,很多人最终还是会在这里寻找日期范围的验证器

假设我们有一个DTO,其中包含另一个DTO(或带有
@embeddeble
注释的类)和两个带有
LocalDate
的字段(或其他日期表示,这是唯一的示例)

类MyDto{

@ValidDataRange//如果类型是Date…很简单,但问题是我的jsp有两个选择框E,一个用于月,一个用于年..这就是我获取字符串的方式..在我的控制器类中,首先比较两个日期,如果fromdate大于todate..我在BindingResult对象中添加错误,但如何在Bean类中添加和哪个注释将添加?如果您在模型中使用日期对象,然后在JSF中使用日期字段,可能会更简单,您将能够直接在模型中使用注释,并使用
@过去的
@未来的
注释测试日期是在今天之前还是之后(如果我很好地理解您的最后一条注释)