java - 单击按钮后不开始下载

标签 java ajax file wicket

可以使用下载文件

AjaxLink<Void> downloadButton = new AjaxLink<Void>("downloadButton") { 

        @Override
        public void onClick(AjaxRequestTarget ajaxRequestTarget) {
}

?或者它只能通过 onSubmit() 操作发生?因为我有一个通过单击按钮下载文件的工作代码,但该方法使用 onSubmit。现在我尝试使用这种按钮执行相同的操作,它以相同的方式准备文件,它甚至在我的本地文件中创建一个临时文件,但是当涉及到浏览器中的弹出窗口时,它只是不执行任何操作。可能是什么问题呢?

编辑:

这是工作代码,但如果我在 AjaxLink 中使用相同的代码,它就无法正常工作,如前所述:

 @Override
        protected void onSubmit() {
            super.onSubmit();

                        File file = null;

                        try {
                            file = File.createTempFile("temp-file-name", ".csv");
                            String data = getData();
                            if (data == null) {
                                FileUtils.writeByteArrayToFile(file, ("").getBytes());
                            } else {
                                FileUtils.writeByteArrayToFile(file, data.getBytes());
                            }
                        } catch (IOException e) {
                            e.printStackTrace();
                        }
                        if (file == null) {
                            throw new IllegalStateException(getClass().getName() +
                                    " failed to retrieve a File object from model");
                        }

                        final File preparedFile = file;


                        IResourceStream resourceStream = new FileResourceStream(
                                new org.apache.wicket.util.file.File(file));
                        getRequestCycle().scheduleRequestHandlerAfterCurrent(
                                new ResourceStreamRequestHandler(resourceStream) {
                                    @Override
                                    public void respond(IRequestCycle requestCycle) {
                                        super.respond(requestCycle);
                                        Files.remove(preparedFile);
                                    }
                                }.setFileName("Report.csv")
                                        .setContentDisposition(ContentDisposition.ATTACHMENT));
                    } 
            }
        }

最佳答案

关于java - 单击按钮后不开始下载,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58623503/

相关文章:

java - 我如何使用 Java 解析 Wikiquotes 响应?

java - android中的图像处理

jquery - 在 Django/jQuery 中验证弹出窗口中的表单而不重新加载页面

javascript - 简单的?? onClick qTip 一些链接但不是全部

C++输出到文本文件时的换行符

java - 使用java创建文件后,其中没有值

java - 序列化 DataTable (WCF) 到 Android 项目

java - 从 RecyclerView 的适配器设置 ImageView 颜色过滤器

javascript - 为什么我无法从 PHP 获取 JS 中的 json 数据?

file - QML 无法打开文件对话框