我在写一个下载Excel文件的程序时候,是通过HTTPServletResponse进行的。没有通过inputstream前台jsp页面上有下载按钮,有分页链接,下载按钮链接到下面的这action的export方法,下面是部分代码
public String export() throws Exception{
response.setHeader("Connection", "close");
response.setHeader("Content-Type", "application/vnd.ms-excel;charset=GBK");
response.setHeader("Content-Disposition", "attachment;filename=" + new String("用户管理.xls".getBytes(), "iso-8859-1")); HSSFWorkbook wb = new HSSFWorkbook();
HSSFSheet sheet = wb.createSheet();
wb.setSheetName(0, "用户管理"); POI的一下操作
OutputStream out = response.getOutputStream();
wb.write(out);
out.close();
}
struts.xml文件中的写法为:<action name="exprotAccount" class="accountAction" method="export“></action>首先声明一下,上面这个程序下载是没有问题的,点击下载按钮弹出下载框,同样页面没有发生跳转,也就是在当前的页面上弹出的下载框
但是只要你点过下载按钮后之后,再去点分页链接的话,分页链接就会失效,而是出现下载框。请问这个问题该如和解决呢? 是不是这response.getOutputStream()出了问题呢?
public String export() throws Exception{
response.setHeader("Connection", "close");
response.setHeader("Content-Type", "application/vnd.ms-excel;charset=GBK");
response.setHeader("Content-Disposition", "attachment;filename=" + new String("用户管理.xls".getBytes(), "iso-8859-1")); HSSFWorkbook wb = new HSSFWorkbook();
HSSFSheet sheet = wb.createSheet();
wb.setSheetName(0, "用户管理"); POI的一下操作
OutputStream out = response.getOutputStream();
wb.write(out);
out.close();
}
struts.xml文件中的写法为:<action name="exprotAccount" class="accountAction" method="export“></action>首先声明一下,上面这个程序下载是没有问题的,点击下载按钮弹出下载框,同样页面没有发生跳转,也就是在当前的页面上弹出的下载框
但是只要你点过下载按钮后之后,再去点分页链接的话,分页链接就会失效,而是出现下载框。请问这个问题该如和解决呢? 是不是这response.getOutputStream()出了问题呢?
解决方案 »
- 急求,jasperreport打印PDF的代码
- ssh2 和jquery 拿值问题
- java.lang.NullPointerException。 是否是Spring配置的问题? 谢谢!
- spring mvc 参数绑定问题
- Spring配置文件提示错误。。。。。
- 有人帮我指点下我如何实现服务器和客户机之间数据传送
- 关于自定义标签:在前台指定一个name就输出一个list并且能够控制行数~~
- Struts下拉框的问题,在ActionForm错误返回的时候出错了
- 用过struts DynaValidatorForm的请帮帮我!!
- 请教一个关于Tomcat的公共库文件的问题。
- struts2下拉列表如何让它可以多选?
- 哪位朋友来解个惑?
我通过response下载之后,再去点击“分页链接”,因为分页链接里调用js函数,
在js函数里面,我是通过
var action = document.forms[0].action;
去获得action的名字的在没有点击“下载按钮”之前,去点击“分页链接”的话
var action = document.forms[0].action;
这种方式得到的就是from 中的action但是如果要是点击了“下载按钮”后,再去点击“分页链接”的话
var action = document.forms[0].action;
这种方式得到的就不是from 中的action
而是你“下载按钮”调用的action所以就出现了我上面问题所说的那种情况
最好的解决办法就是,“分页链接”调用的js中不通过
var action = document.forms[0].action;
这种方式去获得action的名字,而是直接写死action的名字如下var action = "accountSelech.action";
最后更要谢谢朋友们的帮忙!谢谢你们。