0

我的应用程序(带有 Java EE 的 Wicket 框架)具有类似向导的样式并生成一个 xml 文件。我想为用户提供一个可以下载文件的按钮。我怎样才能提供这样的功能,最好不要将文件保存在服务器上?

任何帮助将非常感激

4

2 回答 2

1

我只是使用 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 和动态生成的文件?

于 2013-03-29T14:11:39.103 回答
1

这个例子是一个很好的起点: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。

于 2013-03-29T15:35:34.100 回答