我正在尝试从服务器下载模板文件(Template.xls)。但是没有弹出打开/另存为对话框来下载文件。我正在使用Jboss eap 6.3
这是我的代码,
OutputStream os = null;
InputStream is = null;
try {
URL resource = FacesContext.getCurrentInstance().getExternalContext().getResource("/WEB-INF/Template.xls");
is = resource.openStream();
FacesContext facesContext = FacesContext.getCurrentInstance();
HttpServletResponse resp = (HttpServletResponse) facesContext.getExternalContext().getResponse();
resp.setHeader("Content-disposition", "attachment; filename=Template.xls");
resp.setContentType("application/vnd.ms-excel");
os = resp.getOutputStream();
IOUtils.copy(is, os);
os.flush();
facesContext.responseComplete();
} catch (Exception e) {
StatusMessages.instance().add(StatusMessage.Severity.ERROR, "Error occured while downloading IPS document");
} finally {
IOUtils.closeQuietly(os);
IOUtils.closeQuietly(is);
}
在richfaces菜单中调用此文件模板,如他的
<rich:menuGroup style="font-size:10px;" label="Utilities" icon="img/TolMaintenance.png">
<rich:menuItem style="font-size:10px;" action="#{excelTemplate.downloadExcelTemplate}" label="Template" icon="img/catadmin.png" >
</rich:menuItem>
</rich:menuGroup>
服务器日志上没有错误消息,文件也存在于服务器位置,而调试时我看到URL指向同一位置。我检查了以下链接,
Open/Save as... dialog box not showing
我面临同样的问题。我已经尝试了那里提供的建议,但没有任何结果。
有人可以帮我解决这个问题吗?