我有一个Spring-MVC应用程序,它显示基于bean的表单。该bean有一个用以下内容注释的日期字段:
@DateTimeFormat(iso=ISO.DATE_TIME)
这按预期工作;日期以该格式显示。同时,使用JPA验证注释验证bean中的其他字段。当用户提交表单时,我有一个自定义数据转换器注册,以将传入的字符串转换为似乎运行正常的日期。
因此,当用户提交表单并且其他字段之一的验证失败时,就会出现问题。当验证错误将用户发送回表单输入页面时,日期格式已更改为您在日期对象上调用toString()后所期望的格式。
在将对象发送回表单之前,有没有办法在对象上重新触发DateTimeFormat注释?
答案 0 :(得分:3)
您的设置出现问题,您无需自定义数据转换器即可将String
转换为Date
。如果配置正常,@DateTimeFormat
将控制所有情况下的数据转换,包括传入和传出。
确保您拥有<mvc:annotation-driven />
,并且不要以某种方式覆盖默认转换器。
查看示例,例如mvc-showcase。