java中的responsebody_java-通过@ResponseBody返回时,更改DTO JSON中的日...

我只想更改@ResponseBody返回的DTO中的日期格式

我的问题不是this question,因为我的输出是一个JSON列表,我将其打印在Postman上,而不是使用具有JS和其他UI功能的视图.

它也不是this one,因为我返回的是JSON列表,而不仅仅是Date对象,它是this one的扩展,但我认为Orika映射器不是罪魁祸首.

我在使用@ResponseBody返回列表时获得日期的时间戳值.

我的自定义代码-

@RequestMapping(value = "/my/report", method = RequestMethod.POST)

@ResponseBody

public List createReport() {

//stuff

return Optional.ofNullable(orderDataList)

.orElse(Collections.emptyList())

.stream()

.map(orderData -> getDataMapper().map(orderData, OrderWsDTO.class, fields))

.collect(Collectors.toList());

}

The mapper is:

map:162, ConfigurableMapper (ma.glasnost.orika.impl)

与getDataMapper().mapAsList(orderDataList,OrderWsDTO.class,fields)相同的问题:

@RequestMapping(value = "/my/report", method = RequestMethod.POST)

@ResponseBody

public List createReport() {

//stuff

return getDataMapper().mapAsList(orderDataList, OrderWsDTO.class, fields);

}

OrderWsDTO是具有getter和setter的DTO,并且日期字段是java.util.Date.

在邮递员中,我可以看到日期格式为:“ date”:“ 1552476861991”

相同的确切调用返回OrderWsDTO而不是List< OrderWsDTO>.更改日期格式.它将日期打印为2019-03-13T12:10:05 0000,其格式为:yyy-MM-dd’T’HH:mm:ss.SSXXX

@RequestMapping(value = "/my/report", method = RequestMethod.POST)

@ResponseBody

public OrderWsDTO createReport() {

//stuff

return getDataMapper().map(orderData, OrderWsDTO.class, fields);

}

为什么在以List< DTO>打印时日期显示两种不同的格式?和DTO?

另外,它在哪里获取格式:yyy-MM-dd’T’HH:mm:ss.SSXXX?

编辑1:

日期在这里被格式化:

de.hybris.platform.webservicescommons.jaxb.adapters.DateAdapter#marshal()格式:yyyy-MM-dd’T’HH:mm:ssZ

现在,如何重写此类?

编辑2:

我无法覆盖具有修改日期的适配器列表的jaxbContextFactory. jaxbContextFactory看起来像-

在我的自定义代码中覆盖此bean时,它仍在为typeAdapters选择旧值.有趣的是,它正在用我的自定义属性替换其他属性.

我的自定义覆盖的豆-

com.myproject.mymodule.myadapter

de.hybris.platform.webservicescommons.jaxb.adapters.VariableMapAdapter

de.hybris.platform.webservicescommons.jaxb.adapters.XSSStringAdapter

对于typeAdapters,它总是在选择值-

de.hybris.platform.webservicescommons.jaxb.adapters.DateAdapter

de.hybris.platform.webservicescommons.jaxb.adapters.StringMapAdapter

de.hybris.platform.webservicescommons.jaxb.adapters.XSSStringAdapter

编辑3:

我尝试将mycustomaddon-web-spring.xml中的bean覆盖为-

myproject.adapters.DateAdapter

de.hybris.platform.webservicescommons.jaxb.adapters.StringMapAdapter

de.hybris.platform.webservicescommons.jaxb.adapters.XSSStringAdapter

我在acceleratoraddon / web中添加了自定义适配器类,即myproject.adapters.DateAdapter.

虽然没有解决.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值