我正在尝试在Spring MVC应用程序中注册全局日期格式。我跟着the documentation。我的Spring配置文件的相关部分如下所示:
<beans:bean id="conversionService" class="org.springframework.format.support.FormattingConversionServiceFactoryBean">
<beans:property name="registerDefaultFormatters" value="false" />
<beans:property name="formatters">
<beans:set>
<beans:bean class="org.springframework.format.number.NumberFormatAnnotationFormatterFactory" />
</beans:set>
</beans:property>
<beans:property name="formatterRegistrars">
<beans:set>
<beans:bean class="org.springframework.format.datetime.DateFormatterRegistrar">
<beans:property name="formatter">
<beans:bean class="org.springframework.format.datetime.DateFormatter">
<beans:property name="pattern" value="yyyyMMdd"/>
</beans:bean>
</beans:property>
</beans:bean>
</beans:set>
</beans:property>
</beans:bean>
<!-- Enables the Spring MVC @Controller programming model -->
<annotation-driven conversion-service="conversionService" />
根据文档,我理解这应该使用配置的DateFormatter
来表示我写的所有java.util.Date属性。但是,当我在我的JSP文件中写出一个日期(java.util.Date
类型时,就像这样:
Availability Date: ${model.availabilityDate}
它仍以默认SHORT
格式写出日期,实际上忽略了我的默认格式。
我知道我可以注册@InitBinder
方法,或者使用@DateTimeFormat
指定格式,但这不是重点。我想更改全局默认值以确保以特定格式输出日期,除非另有说明。
我在SO上发现了与此类似的其他问题,但似乎没有一个能帮我解决问题:
答案 0 :(得分:3)
似乎全局默认格式仅适用于在输入字段之间编组日期,而不是直接使用JSP编写日期。