2017-10-26 5 views
0

私はJava/Springアプリケーションを持っています。私のエンドポイントSpring:デフォルトのHttpMessageConverterフォーマットを設定します。

www.url.xx/serach?q=omestuff 

はデフォルトでJSONを出力します。今私はいくつかのエンドポイントを輸出したい。

私はCSVためMessageConverter作成:

public class SearchResultCsvConverter extends AbstractHttpMessageConverter { 
    public SearchResultCsvConverter() { 
     super(new MediaType("text", "csv")); 
    } 

と魔法のエンドポイント

www.url.xx/serach.csv?q=omestuff 

はcsvファイルを提供します。 Neato。

次の私は、HTML-輸出を作りたかったと同様に

public class SearchResultHtmlConverter extends AbstractHttpMessageConverter { 
    public SearchResultHtmlConverter() { 
     super(new MediaType("text", "html")); 
    } 

HTMLエンドポイントを作った。しかし、悲しいかな!これで、デフォルトのエンドポイント(ファイル拡張子なし)がデフォルトのJSON出力ではなくなります(私の場合はHttpMessageConverterはありません)。

明示的に要求されている場合にのみ、デフォルトでコンバータを使用せず、HTMLコンバータを使用するように設定するにはどうすればよいですか?

- CSVエクスポートはその後、動作しないため、編集1 serach-エンドポイントは、

私は@RequestMappingに //produces={APPLICATION_JSON_UTF8_VALUE})を持っていたが、それを削除...この

@RequestMapping(value="/search", method=RequestMethod.GET) 
public @ResponseBody ResponseEntity<?> handleSearchRequest(@RequestParam("q") final String queryString) { 

のように見えます。..

- 編集2

Aが出回っ

を持っていました
@Override 
public void configureContentNegotiation(ContentNegotiationConfigurer configurer) { 
     configurer.defaultContentType(MediaType.APPLICATION_JSON_UTF8); 
} 
+0

を設定しなければならなかった考え出しました。 } – Paflow

答えて

0

私は、私が出回っ(MediaType.APPLICATION_JSON_UTF8)」を持っている@Override ます。public void configureContentNegotiation(ContentNegotiationConfigurerコンフィギュア){ configurer.defaultContentType

configurer.ignoreAcceptHeader(true) 
関連する問題