gpt4 book ai didi

java - Wicket 口在另一个请求后触发请求

转载 作者:行者123 更新时间:2023-12-03 10:25:41 25 4
gpt4 key购买 nike

我尽力描述我的情况。我的 Wicket 站点包含列表 Wicket 组件,其中每个列表元素都有另一个列表。最低级别列表中的每个元素都有 ajax wicket 链接来下载某些文件。这一切都运行良好。我习惯了这种Ajax行为。此行为的 startDownload 方法是在链接 onClick 方法中调用的。

 public void startDownload(AjaxRequestTarget target) {
target.appendJavaScript("window.location.href='" + getCallbackUrl() +"'");
}

该行为的onRequest方法是:

@Override
public void onRequest() {
IRequestHandler fileTarget = new IRequestHandler() {

@Override
public void respond(IRequestCycle requestCycle) {
if (null != file) {
try {
FileInputStream inputStream = new FileInputStream(file);
WebResponse resp = (WebResponse) requestCycle.getResponse();
resp.setAttachmentHeader(fileName);
String contentType = FileUtils.getFileType(fileName);
if (contentType != null) {
resp.setContentType(contentType);
}
resp.setHeader("Pragma", "anytextexeptno-cache");
resp.setHeader("Cache-Control", "max-age=0");

Streams.copy(inputStream, requestCycle.getResponse().getOutputStream());
} catch (Exception e) {
logger.error(e.getMessage(), e);
}
}
}

现在我需要在下载文件操作后重新加载模型并刷新页面中的一些组件。在代码调用 startDownload 方法后,我尝试将整个页面添加到 onclick 方法中的 AjaxRequestTarget 中。重新加载页面工作正常,但不显示包含要下载文件的窗​​口。

我认为我必须在其他单独的请求中重新加载页面(也许我错了?),因为在这个请求中我调用'window.location.href=....',但我不这样做知道我如何强制执行第二个重新加载页面的请求。

有人知道我做错了什么吗?我该如何解决我的问题?

最佳答案

关于java - Wicket 口在另一个请求后触发请求,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29416609/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com