如何使用Spring MVC在JSP页面上显示线程的进度?

时间:2015-06-15 03:23:33

标签: java multithreading spring spring-mvc concurrency

我有一个Spring MVC Web应用程序,有一个表单,我正在根据这些输入进行输入,我正在创建一个唯一的id(通过在数据库中检查它,Java端的逻辑而不是数据库用于创建唯一的ID)。到目前为止,一切都很好。

现在我想通过CSV文件提供批量上传选项。我从csv文件解析了整个数据,并尝试使用TaskExecutionService在数据库中插入数据(8000条记录)。但是这整个过程并不是很快我得到立即响应,所以我想在jsp页面上显示整个任务的进度,以便它看起来是交互式的,并且在完成所有线程时,我想显示一个链接到下载包含所有唯一ID的csv文件。

我不知道如何在线程在幕后运行时更新页面?

如果与spring MVC兼容,也欢迎使用此过程的任何其他方法。

1 个答案:

答案 0 :(得分:1)

这可以使用ajax来完成,你可以从后端轮询进度百分比并使用js / jquery或其他插件来显示进度。任何你必须设计逻辑来获得完成工作的百分比你的线程。可能你可以计算插入的行数并从中获取逻辑来计算完成的工作的百分比。所以应该有一个方法可以返回完成的工作百分比,并且对此方法的ajax调用可以帮助显示进度。

参考jquery progress bar

Progressbar.js