如何使用在浏览器中打开的java下载xml文件?

如何使用在浏览器中打开的java下载xml文件?,java,xml,browser,download,vaadin,Java,Xml,Browser,Download,Vaadin,我使用java和Vaadin14作为框架。我创建了一个xml文件。它已成功创建并显示在浏览器中。但它不能自动下载。我在下面有一个创建和下载该文件的代码。为什么它不起作用 创建新文件代码- //创建xml文件 字符串xmlOutPath,fname; 随机r=新随机(); fname=r.nextInt(1000000)+“.xml” File File=File.createTempFile(“a-”,fname,新文件(xmlOutPath)); FileOutputStream fos=新的

我使用java和Vaadin14作为框架。我创建了一个xml文件。它已成功创建并显示在浏览器中。但它不能自动下载。我在下面有一个创建和下载该文件的代码。为什么它不起作用

创建新文件代码-

//创建xml文件
字符串xmlOutPath,fname;
随机r=新随机();
fname=r.nextInt(1000000)+“.xml”
File File=File.createTempFile(“a-”,fname,新文件(xmlOutPath));
FileOutputStream fos=新的FileOutputStream(文件);
DocumentBuilderFactory docFactory=DocumentBuilderFactory.newInstance();
DocumentBuilder docBuilder=docFactory.newDocumentBuilder();
此文件已成功创建。然后我有一个代码下载它-

导入com.vaadin.flow.component.UI;
//下载xml文件
文件下载文件;
DOMSource=新的DOMSource(doc);
StreamResult=新的StreamResult(文件);
变换(源、结果);
fos.close();
下载文件=文件;
UI.getCurrent().getPage().executeJs(“location.href=\”/rpttmp/“+downloadFile.getName()+”;\”);
但是我发现像这样-


如何自动下载此文件,而不是在浏览器上显示该文件?

在Vaadin论坛上查看此线程:。这里有一个类似的讨论,有一个代码示例,我使用的是vaadin 14。在这方面,V10和V14之间没有区别:),所以这里的建议仍然有效