2017-08-17 21 views
1

データベースから詳細を取得し、それを応答POJOに設定して戻すためのスプリングレス方式を作成しています。現時点では、データがダウンロード可能なCSVファイルのようにPOSTMANまたはRCを使用してURLをヒットしたときに、デフォルトのjsonではなくCSVでこの応答を生成する必要があります。私は多くのサイトをgoogledしましたが、ロジックはほとんど分かりません。Springブートを使用してCSVファイルを生成するためのGetMapping

  1. pojoクラス値をCSV形式に変換するビジネスロジックを記述する必要がありますか、またはスプリングに変換メカニズムがありますか?
  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); 

} 

応答は、応答JSONを返しますデフォルトスプリングにより、そのPOJO形式ですべてのデータを、私たちは与えていない場合は、サービスリターンは注釈で生産するものです。誰かが私を導くことができる?前もって感謝します。

+0

[Spring ControllerからブラウザでCSVデータを返す方法](https://stackoverflow.com/questions/22947751/how-to-return-csv-data-in-browser-from-spring-controller)の可能な複製) –

+0

スプリングブートでは、Spring WebMVCを使用しており、Spring WebMVCには[組み込みサポート](https://docs.spring.io/spring/docs/current/spring-framework-reference/html/view.html#view)があります。 -jasper-reports)をJasperReportsを介してCSVに適用します。あるいは、一般的なCSV処理ライブラリを使用してカスタムの 'MessageConverter'([https://stackoverflow.com/a/4/494947/1126526])を作成することもできます。 – manish

+0

ねえ、これは:https://stackoverflow.com/a/45729709/1942642に質問がありますか? –

答えて

1

ちょうど@GetMappingを使用してproduces="text/csv"では不十分です。それは応答ヘッダーContent-Type: text/csvを設定する責任があります。

あなたは、パラメータHttpServletResponse responseとしてレスポンスを追加するには、POJOが有効csvファイルに変換し、その後にのみ、HttpServletResponsecsvファイルを書く必要があります。

+0

これはちょっと私の質問に答えましたが、正確に私はOpenCSV APIを使用してそれを完了しました。 – user2632905

関連する問題