私のアプリケーション (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 の更新とファイルのダウンロードを 1 回で実行できます。
あとは、生成する 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 を使用できます。