我在使用Struts下载文件时遇到问题。我知道Struts是一项古老的技术,但我的公司正在为客户维护一个旧的应用程序。
所以,问题是我们想要一个网页来下载文件。方案如下:到达网页&gt;点击按钮&gt; <执行处理(DB查询和数据选择)&gt;生成excel文件&gt;下载文件&gt;回到初始页面。
我的代码正在运行,直到文件下载,即我可以下载正确的Excel文件,但我无法返回到原始网页。
我在这个论坛中看到了这个answer和其他人,似乎下载文件并返回到原始页面是两种不同的处理方式,并且Struts只能处理一个......
我绝对需要这两种治疗,所以我的想法如下:当用户点击原始页面上的按钮时,我应该打开另一个窗口(甚至是一个弹出窗口)来处理excel治疗和下载,我的原始页面不会移动,因此我不需要在治疗结束时前进。
问题是,您认为这是可行的吗?我在这里找不到类似的代码所以我想这不是一个好主意,所以如果你对我的需求有一个很好的练习,请分享它:)
答案 0 :(得分:0)
确定你的想法会奏效。但是用户必须在下载开始后关闭弹出窗口。
只是提出一些其他想法: 我有一个类似的问题,解决它有点不同。 Javascript允许在一行中使用一个按钮执行多个语句(无论如何,使用弹出和重定向解决方案都会执行此操作)。
所以你可以听按钮上的点击事件并下载文件,然后再做一些不同的事情。
以下是有关使用javascript Link下载文件而不使用弹出窗口的一些主题。简单的javascript重定向也非常简单Link #2。
struts的粘合代码是您在用户访问页面时生成的两个链接。
html / jquery中的或多或少的伪代码:
<button id="download" data-downloadlink="<s:property value='downloadlink'/>" data-redirectpage="<s:property value='redirectpage'/>">Download</button>
$('#downloadbutton').on('click', function() {
download($('#downloadbutton').data('downloadlink'));
redirect($('#downloadbutton').data('redirectpage'));
});