当验证失败时,如何在Spring MVC中重新格式化注释日期?

时间:2011-01-24 21:55:04

标签: spring-mvc spring-annotations

我有一个Spring-MVC应用程序,它显示基于bean的表单。该bean有一个用以下内容注释的日期字段:

@DateTimeFormat(iso=ISO.DATE_TIME)

这按预期工作;日期以该格式显示。同时,使用JPA验证注释验证bean中的其他字段。当用户提交表单时,我有一个自定义数据转换器注册,以将传入的字符串转换为似乎运行正常的日期。

因此,当用户提交表单并且其他字段之一的验证失败时,就会出现问题。当验证错误将用户发送回表单输入页面时,日期格式已更改为您在日期对象上调用toString()后所期望的格式。

在将对象发送回表单之前,有没有办法在对象上重新触发DateTimeFormat注释?

1 个答案:

答案 0 :(得分:3)

您的设置出现问题,您无需自定义数据转换器即可将String转换为Date。如果配置正常,@DateTimeFormat将控制所有情况下的数据转换,包括传入和传出。

确保您拥有<mvc:annotation-driven />,并且不要以某种方式覆盖默认转换器。

查看示例,例如mvc-showcase