簡體   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