我的应用程序(带有 Java EE 的 Wicket 框架)具有类似向导的样式并生成一个 xml 文件。我想为用户提供一个可以下载文件的按钮。我怎样才能提供这样的功能,最好不要将文件保存在服务器上?
任何帮助将非常感激
我的应用程序(带有 Java EE 的 Wicket 框架)具有类似向导的样式并生成一个 xml 文件。我想为用户提供一个可以下载文件的按钮。我怎样才能提供这样的功能,最好不要将文件保存在服务器上?
任何帮助将非常感激
我只是使用 org.apache.wicket.markup.html.link.DownloadLink
HTML:
<input wicket:id="export" type="button">
爪哇:
File file = new File(appHome + "/template.xlsx");
add(new DownloadLink("export", file, "template.xlsx"));`
我将文件存储在服务器上,但这里有另一个问题,其中包含有关如何动态生成文件的更多信息: 如何使用 Wicket 的 DownloadLink 和动态生成的文件?
这个例子是一个很好的起点:AJAX 更新和文件下载一气呵成。
然后,您唯一需要做的就是为您生成的 XML 实现 IResourceStream。
public class YourXmlDownload implements Serializable, IResourceStream {
protected byte[] xmlContent = null;
// ...
@Override
public final Bytes length() {
return Bytes.bytes(xmlContent.length);
}
@Override
public final InputStream getInputStream() throws ResourceStreamNotFoundException {
return new ByteArrayInputStream(xmlContent);
}
}
您可以使用如上例所示的 ByteArrayInputStream。