Vaadin 8 - 包含字符串内容的文本文件的下载按钮

kos*_*cki 2 scala stream vaadin vaadin8

我想将String内容分配给变量并使用户能够将该字符串下载为文本文件。我知道FileDownloader我可以使用 Vaadin 8 中的内容,但我不需要静态文件/图像下载功能,而是需要可以在浏览器中下载文本文件的动态字符串内容。

mst*_*ahv 5

Vaadin 中使用的资源接口FileDownloader有点麻烦。对于动态创建的内容尤其如此,您需要推迟其生成,直到用户实际单击下载按钮,这在典型的 Vaadin 应用程序中很常见。

Viritin 附加组件

因此,我建议将Viritin插件添加到您的应用程序中。使用DownloadButton其中的组件,大大简化了使用。

这是一个简单的例子:

DownloadButton simple = new DownloadButton(out -> {
    try {
        out.write("Foobar".getBytes());
    } catch (IOException ex) {
        // exception handling
    }
}).withCaption("Simple Download");
Run Code Online (Sandbox Code Playgroud)

要查看更完整的示例,请参阅Viritin 项目中的测试。如果您仔细阅读类的源代码,您还可以从项目中看到“原始解决方案” DownloadButton

附言。我是Viritin的作者,所以有点偏向于建议它的用法,但我也一直在 Vaadin Ltd 与 Vaadin 合作十多年。