繁体   English   中英

GetMapping使用Spring Boot生成CSV文件

[英]GetMapping to produce CSV file using Spring Boot

我正在编写一个spring rest方法来从数据库中获取详细信息并将其设置在响应POJO中然后返回它。 目前,当使用POSTMAN或RC(如带有数据的可下载CSV文件)命中URL时,我需要以CSV而不是默认json生成此响应。 我搜索了许多网站,但我不确定几个逻辑。

  1. 我们是否需要编写业务逻辑来将pojo类值转换为csv格式,或者spring是否有任何转换机制?
  2. 在许多地方都提到了Produces =“text / csv”,这是否正确转换了响应?

目前我还没有为CSV转换编写任何代码。

@GetMapping("/batch/export" , produces="text/csv")
public ResponseEntity<ApplicationResponse> getBatchDetails(
        HttpServletRequest request) {

    ApplicationRequest appRequest = ApplicationServiceMapper.mapRequestFromHttpRequest(request);
    ApplicationResponse response = appService.getDBDetails(appRequest);
    return new ResponseEntity<>(response, HttpStatus.OK);

}

这里的响应是服务以其pojo格式返回所有数据的响应,如果我们不在注释中给出产生,那么默认情况下spring将返回响应json。 有人可以指导我吗? 提前致谢。

仅使用@GetMapping produces="text/csv"@GetMapping是不够的。 它只负责设置响应头Content-Type: text/csv

您需要将响应添加为参数HttpServletResponse response ,将您的POJO转换为有效的csv文件,然后将csv文件写入HttpServletResponse

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM