0

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

@DateTimeFormat(iso=ISO.DATE_TIME)

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

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

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

4

1 回答 1

3

您的设置有问题,您不需要自定义数据转换器即可转换StringDate. 如果一切配置良好,@DateTimeFormat则控制所有情况下的数据转换,包括传入和传出。

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

查看示例,例如mvc-showcase

于 2011-01-24T22:11:23.120 回答