Json 为spring3 mvc项目定义自定义jackson对象映射器

Json 为spring3 mvc项目定义自定义jackson对象映射器,json,spring,jackson,Json,Spring,Jackson,我使用的是mvc:annotation-driven,这意味着只需将jacksonjar文件放入配置jacksonjson marhsaller的类路径中。现在,我想提供一个自定义对象映射器,以便能够在全局级别上控制日期字段的序列化 我开始定义AnnotationMethodhandlerAdapter并引用我自己的jsonConverter bean,见下文 <bean class="org.springframework.web.servlet.mvc.annotation.Annot

我使用的是mvc:annotation-driven,这意味着只需将jacksonjar文件放入配置jacksonjson marhsaller的类路径中。现在,我想提供一个自定义对象映射器,以便能够在全局级别上控制日期字段的序列化

我开始定义AnnotationMethodhandlerAdapter并引用我自己的jsonConverter bean,见下文

<bean class="org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter">
    <property name="messageConverters">
        <list>
            <ref bean="jsonConverter" />
            <ref bean="xmlMarshallingConverter" />
        </list>
    </property>
</bean>

问题是日期仍然被写为时间戳。定制的ObjectMapperbean是为此创建的,并获得了日志,但它似乎从未使用objectmapper。我假设它仍然使用默认的MappingJacksonHttpMessageConverter和默认的ObjectMapper

有什么想法吗?我如何确定要覆盖哪些确切的bean来更改默认映射器


塔克斯

是否已将视图解析器配置为也使用自定义对象映射器实例请参见下面的JacksonObject mapper参考

据我所知,AnnotationMethodHandlerAdapter处理入站转换,ContentNegotiatingViewResolver处理出站转换

<bean class="org.springframework.web.servlet.view.ContentNegotiatingViewResolver">
    <property name="mediaTypes">
        <map>
            <entry key="json" value="application/json"/>
            <!-- xml etc -->
        </map>
    </property>
    <property name="defaultViews">
        <list>
            <bean class="org.springframework.web.servlet.view.json.MappingJacksonJsonView">
                <property name="objectMapper" ref="jacksonObjectMapper"/>
            </bean>
            <!-- xml etc -->
        </list>
    </property>
</bean>

是否已将视图解析器配置为也使用自定义对象映射器实例请参见下面的JacksonObject mapper参考

据我所知,AnnotationMethodHandlerAdapter处理入站转换,ContentNegotiatingViewResolver处理出站转换

<bean class="org.springframework.web.servlet.view.ContentNegotiatingViewResolver">
    <property name="mediaTypes">
        <map>
            <entry key="json" value="application/json"/>
            <!-- xml etc -->
        </map>
    </property>
    <property name="defaultViews">
        <list>
            <bean class="org.springframework.web.servlet.view.json.MappingJacksonJsonView">
                <property name="objectMapper" ref="jacksonObjectMapper"/>
            </bean>
            <!-- xml etc -->
        </list>
    </property>
</bean>

你在使用@ResponseBody吗?你在使用@ResponseBody吗?我想通过使用@ResponseBody注释,可以使用HttpMessageConverters,而不是视图解析器。一秒钟:这是否意味着ContentNegotingViewResolver是自动设置的?我没有具体说明。我只是在使用plain,我想通过使用@ResponseBody注释可以使用HttpMessageConverters,而不是视图解析器。一秒钟:这是否意味着contentnegotingviewresolver是自动设置的?我没有具体说明。我只是用普通的