我似乎无法解决这个问题。
最初,JSP代码在Javascript中有一个函数,可以从另一个服务器调用jsp:
window.open("<%= otherServer %>/ourreports/Company/fooreport.jsp?index"+index,"Foo",options);
其中otherServer
是本地服务器(http://192.168.4.40:8080)
这很好用,并会用fooreport.jsp弹出一个新窗口。
现在的任务是指向同一服务器中的jsp。 所以,我把它改成了
window.open("/reports/Company/fooreport.jsp?index"+index,"Foo", options);
我会得到下载文件弹出窗口而不是页面
我也试图做以下所有事情:
window.location = "/reports/Company/fooreport.jsp?index="+index;
window.location.href = "/reports/Company/fooreport.jsp?index="+index;
window.location = "http://localhost:9080/reports/Company/fooreport.jsp?index="+index;
window.location.href = "http://localhost:9080/reports/Company/fooreport.jsp?index="+index;
我仍然可以通过弹出窗口将fooreport.jsp下载到我的电脑上。
jsp格式正确,有DOCTYPE,标签,&lt;%@ page声明......它基本上与之前调用的jsp相同
我正在使用WebSphere 7.5.4而java是1.5
答案 0 :(得分:0)
window.location
标头设置为Content-Disposition
,则 Attachment
应该有效。
response.setHeader("Content-Disposition", "attachment; filename=yourfile.ext");
注意到在JSP中执行此操作是个坏主意。如果响应涉及二进制数据,JSP可能会破坏它。在Servlet中完成这项工作。 JSP旨在用not编写模板文本来编写Java代码。
答案 1 :(得分:0)
问题出在JSP中。 使用window.location和window.open的调用适用于其他JSP。
问题出在“&lt;%page”声明中。 我删除了它们,所以不记得确切,但它与Content-Type和ISO设置有关。 我把它们全部拿出来,只留下“&lt;%page import”声明,现在它可以正常工作。