Java 两个日期字段之间的Spring验证?
在我的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
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上 有关更多信息,请参阅以下答案
@embeddeble
注释的类)和两个带有LocalDate
的字段(或其他日期表示,这是唯一的示例)
类MyDto{
@ValidDataRange//如果类型是Date…很简单,但问题是我的jsp有两个选择框E,一个用于月,一个用于年..这就是我获取字符串的方式..在我的控制器类中,首先比较两个日期,如果fromdate大于todate..我在BindingResult对象中添加错误,但如何在Bean类中添加和哪个注释将添加?如果您在模型中使用日期对象,然后在JSF中使用日期字段,可能会更简单,您将能够直接在模型中使用注释,并使用@过去的或@未来的注释测试日期是在今天之前还是之后(如果我很好地理解您的最后一条注释)