【问题标题】:How to validate date using Custom date proprty editor in spring MVC如何在 Spring MVC 中使用自定义数据属性编辑器验证日期
【发布时间】:2011-03-08 17:20:08
【问题描述】:

我已经在我的 java 类中设置了日期

这是我在控制器中使用的代码

@InitBinder
    public void initBinder(final WebDataBinder binder) {
        binder.registerCustomEditor(Date.class, null, new CustomDateEditor(new SimpleDateFormat("dd-MM-yyyy"), true));
    }

我正在使用 JSR 注释和休眠来验证其他字段。

有什么方法可以使用注释来验证日期必须是 dd-mm-yyyy 格式

【问题讨论】:

标签: java date spring-mvc hibernate-validator bean-validation


【解决方案1】:

CustomDateEditor 本身不是验证器,但在这种情况下,它会隐式验证您的模式:它只会使用您指定的格式将字符串解析为日期。所以如果解析不成功,你会得到一个空值。

Spring 验证发生在绑定之后,因此任何验证都将在 Date 对象上执行(因此在该字符串被解析之后),而不是在初始字符串上。

【讨论】:

  • 正如有人已经提到的,但由于某种原因该答案消失了,还有 org.springframework.format.annotation.DateTimeFormat 注释,您可以在 Date 字段上使用日期模式,ConversionService 将使用它.这似乎更接近您正在寻找的内容。我想知道为什么另一个答案被删除了......
  • @DateTimeFormat("dd-MM-yyyy") 私人日期 myDate;
  • 抱歉,这是@DateTimeFormat(pattern = "dd-MM-yyyy")
  • 嗯...这很奇怪。你能调试它,看看转换器是如何执行的吗?源代码应该告诉你所有你需要的......
  • 我已经尝试了很多次,例如,如果我在日期字段中输入“1111-1111-1111”,而在其他字段中出现其他错误,并且当表单再次加载时,则日期是 pre - 以 dd-mm-yyyy 格式加载。它不会给出错误,而是重新格式化它
猜你喜欢
  • 2014-09-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-10-08
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多