如何从Spring Controller在浏览器中返回CSV数据

假设我有一个字符串中的CSV数据,并想从Spring控制器返回它。想象一下数据看起来像这样

a,b,c 

1,2,3

4,5,6

不管我尝试了什么,换行符在响应内容中的字面都是’\ n’,如果我像在“ \

n”中对它们进行两次转义,响应也将包含两个反斜杠。通常,如何在不修改换行符的情况下返回包含换行符的纯文本数据?我知道如何返回纯文本,但是内容仍然带有转义的换行符…这是我当前拥有的(使用Spring

3.0.5,而不是选择)

@RequestMapping(value = "/api/foo.csv")

public ResponseEntity<String> fooAsCSV() {

HttpHeaders responseHeaders = new HttpHeaders();

responseHeaders.add("Content-Type", "text/plain; charset=utf-8");

String data = "a,b,c\n1,2,3\n3,4,5";

return new ResponseEntity<>(data, responseHeaders, HttpStatus.OK);

}

从字面上产生字符串

"a,b,c\n1,2,3\n,3,4,5"

在浏览器中。如上所示,我该如何使用新行完整地生成正确的数据?

回答:

您可以使用例如直接写入响应

@RequestMapping(value = "/api/foo.csv")

public void fooAsCSV(HttpServletResponse response) {

response.setContentType("text/plain; charset=utf-8");

response.getWriter().print("a,b,c\n1,2,3\n3,4,5");

}

由于返回类型是void并且HttpServletResponse被声明为方法参数,因此假定该方法返回时请求已完成。

以上是 如何从Spring Controller在浏览器中返回CSV数据 的全部内容, 来源链接: utcz.com/qa/411672.html

回到顶部