Spring MVC忽略全局日期格式?

时间:2014-02-14 10:12:24

标签: java spring spring-mvc datetime-format

我正在尝试在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上发现了与此类似的其他问题,但似乎没有一个能帮我解决问题:

1 个答案:

答案 0 :(得分:3)

似乎全局默认格式仅适用于在输入字段之间编组日期,而不是直接使用JSP编写日期。