我知道,这里有很多来自Spring MVC的客户端JSON日期格式的例子,但在我的例子中,除了一个使用复合合同的特定案例之外,一切都很好。
问题是,在客户端,JSON响应端
curObj
日期
currencyOpenedDate
收到
字符串格式
,同时
depObj.subdivisionClosedDate
日期以时间戳格式指定。
您可以在问题底部找到的回答屏幕。
curObj.currencyOpenedDate
时间戳格式?
<context:component-scan base-package="ru.iteco.kursval.server.rest"/>
<context:annotation-config/>
<!-- Configures the @Controller programming model -->
<bean class="org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter">
<property name="messageConverters">
<list>
<bean class="org.springframework.http.converter.json.MappingJackson2HttpMessageConverter"/>
</list>
</property>
</bean>
<!-- Total customization - see below for explanation. -->
<bean id="contentNegotiationManager" class="org.springframework.web.accept.ContentNegotiationManagerFactoryBean">
<property name="favorPathExtension" value="false"/>
<property name="favorParameter" value="true"/>
<property name="parameterName" value="mediaType"/>
<property name="ignoreAcceptHeader" value="true"/>
<property name="useJaf" value="false"/>
<property name="defaultContentType" value="application/json"/>
<property name="mediaTypes">
<map>
<entry key="json" value="application/json"/>
<entry key="xml" value="application/xml"/>
</map>
</property>
</bean>
<mvc:interceptors>
<mvc:interceptor>
<mvc:mapping path="/**"/>
<bean:bean class="ru.iteco.kursval.server.rest.config.ApiInterceptor" autowire="constructor">
</bean:bean>
</mvc:interceptor>
</mvc:interceptors>
<!-- Make this available across all of Spring MVC -->
<mvc:annotation-driven content-negotiation-manager="contentNegotiationManager"/>
混合成的
public class RegionalBankBlockCurrencyDto implements Serializable {
//.....
private Long curId;
/*----> here */ private CurrencyDto curObj;
private Long depId;
private SubdivisionDto depObj;
// .... getters and setters
}
货币对象
public class CurrencyDto implements Serializable {
private Date currencyOpenedDate;
private Date currencyClosedDate;
public Date getCurrencyOpenedDate() {
return currencyOpenedDate;
}
public void setCurrencyOpenedDate(Date currencyOpenedDate) {
this.currencyOpenedDate = currencyOpenedDate;
}
public Date getCurrencyClosedDate() {
return currencyClosedDate;
}
public void setCurrencyClosedDate(Date currencyClosedDate) {
this.currencyClosedDate = currencyClosedDate;
}
}
货币和细分DTO非常简单,没有任何注释和日期属性。这两种情况下的初始化如下:
Date openDate = null;
if (currency.getOpenDate() != null) {
openDate = new Date(currency.getOpenDate().getTime());
}
服务器端实例
JSON响应