前几天遇到了一个很灵异的问题,我做了的纯页面的下载清单的页面,刚开始几天运行Ok,但是最近几天报了BUG,打印出来为NULL。
页面采用JS提交,代码如下:
页面代码如下:
excelExport.jsp代码如下:
我想到可以从页面传ID进action,然后通过ID在数据库中查到结果,最后通过StringBuffer拼接字符,传到excelExport.jsp页面吗?
想到方案,马上便更改代码,按照方案来做更改,然后测试,一个300多M的清单信息哗啦啦的下载下来了,呵呵。
页面采用JS提交,代码如下:
function exportExcel() {
document.getElementById("excelData").value=document.getElementById("divExcel").innerHTML;
var _myForm=document.getElementById("exportExcel");
_myForm.action="excelExport.jsp";
_myForm.submit();
}
页面代码如下:
<body>
<form id="exportExcel" method="post">
<input type="button" value="导出EXCEL" onClick="exportExcel();"/>
<div id="divExcel">
<table>略</table>
</div>
<input type="hidden" name="excelData" id="excelData"/>
</form>
</body>
excelExport.jsp代码如下:
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<%
String tableStr = request.getParameter("excelData");
response.reset();
response.setContentType("application/msexcel; charset=UTF-8");
response.setHeader("Content-disposition","inline;filename=default.xls");
out.println(tableStr);
%>
查了很久没有查到原因,好家伙,真灵异的问题,今天无意中在网上闲看,看到一条信息,POST提交方式不能提交超过100K的字符!我突然想起来我的这个错误,会不会是字府串太长导致的错误呢,我一查看页面的表格的内容,哇` 16M的字符。当下确定了BUG原因,试想怎么解决呢?
我想到可以从页面传ID进action,然后通过ID在数据库中查到结果,最后通过StringBuffer拼接字符,传到excelExport.jsp页面吗?
想到方案,马上便更改代码,按照方案来做更改,然后测试,一个300多M的清单信息哗啦啦的下载下来了,呵呵。