Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/xml/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
允许用户在JavaEE/Wicket上下载生成的XML_Xml_Jakarta Ee_Dynamic_Download_Wicket - Fatal编程技术网

允许用户在JavaEE/Wicket上下载生成的XML

允许用户在JavaEE/Wicket上下载生成的XML,xml,jakarta-ee,dynamic,download,wicket,Xml,Jakarta Ee,Dynamic,Download,Wicket,我的应用程序(带有JavaEE的Wicket框架)具有类似向导的风格,并生成xml文件。我想为用户提供一个按钮,用它可以下载文件。我如何提供这样的功能,最好是不将文件保存在服务器上 非常感谢您的帮助我只使用org.apache.wicket.markup.html.link.DownloadLink HTML: 爪哇: 我将文件存储在服务器上,但这里有另一个问题,其中包含有关如何动态生成文件的更多信息: 这个例子是一个很好的起点: 然后,您需要做的唯一一件事就是为生成XML实现IResourc

我的应用程序(带有JavaEE的Wicket框架)具有类似向导的风格,并生成xml文件。我想为用户提供一个按钮,用它可以下载文件。我如何提供这样的功能,最好是不将文件保存在服务器上


非常感谢您的帮助

我只使用org.apache.wicket.markup.html.link.DownloadLink

HTML:

爪哇:

我将文件存储在服务器上,但这里有另一个问题,其中包含有关如何动态生成文件的更多信息:

这个例子是一个很好的起点:

然后,您需要做的唯一一件事就是为生成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,如上面的示例所示

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);
    }

}