我正在使用spark为我正在编写的Web应用程序运行服务器端。我搜索了一下文档,但是我空了..有没有办法向前端提供数据,以便自动为用户下载csv文件?我试图用作csv的数据看起来像这样。
// example data... returned by "getData()"
JSONArray test = new JSONArray()
.put(
new JSONArray().put("foo").put("bar")
)
.put(
new JSONArray().put(1).put(2)
);
// route
get("/csv/:path", "application/json", (req, res) -> {
res.type("text/csv");
JSONArray reply = getData(req);
return data;
});
我正在查看文档的ResponseTransformers部分,但我无法弄清楚如何将数据作为可下载的csv文件而不是json对象提供。我假设ResponseTransformer以某种方式需要进行子类化,但我找不到一个能够做我想做的事情的例子。任何人都可以向我提供一个例子,或者指出一些解释如何做到这一点的文档?
编辑:我能够在javascript方面调用我的路线。
window(route);
允许我在计算机上选择一个程序来下载响应。但是,数据在记事本中看起来像这样
[["foo","bar"],[1,2]]
所以,关闭..但不是一个csv文件。我希望输出看起来更像这样。
foo,bar
1,2
答案 0 :(得分:1)
我认为您可以使用StringBuilder来呈现您的csv文件,就像this answer一样。我还认为您的请求func TestExpectedPanic() {
got := panicValue(func() { closeTransaction(true) })
a, ok := got.(error)
if a != errUnexpectedClose || !ok {
t.Error("Expected ", errUnexpectedClose.Error())
}
}
func panicValue(fn func()) (recovered interface{}) {
defer func() {
recovered = recover()
}()
fn()
return
}
的第二个参数也可以删除。它看起来像这样:
"application/json"