java excel导出遇到的问题

最近手头有一个需求是增加后台管理系统报表导出的过滤功能。

在功能实现后进行导出测试,发现无法导出。

原导出是没有带入参数的,这次带了参数所以前台请求将表单的数据序列化后使用的是ajax 同步请求。

通过度娘发现ajax请求是无法导出的,具体原因我没有关注。

那么既然ajax无法请求,那我换window.location.href将参数一个一个获取后拼在url后面。

结果是可以是导出了,但是表格第一行第一列只有一个"閭"字

怎么办,继续百度,百度说我的打开方式不对,好吧,将window.location.href更换成window.open()

重跑一次,还是和上图一样,这下懵逼了,url,参数都没问题,打开方式也更换了,后台方法是封装的其他地方使用也没问题。

纠结了一个小时,心里想着要不更换一下url后拼接的参数的方式,过滤条件有接近十个,本来手动拼接我就不太乐意了,

遂:$("#from1").fromserialize() , $.param() 处理参数放在url后面

结果--》 点击导出按钮无反应,浏览器控制台报错 说不知道 fromserialize 这个方法

那既然不行我再换一个 $("#from1").serialize() 得到参数后放再url后,点击导出成功。

好吧,这是一个java新人的心酸踩坑史,虽然解决了问题,但是我还是不知道是怎么回事。。。

下面百度的一些东西:

formSerialize():

jquery在调用formSerialize()方法时,内部会自动encodeURIComponent方法,因此在Jsp页面中调用formSerialize()方法后,还需调decodeURIComponent方法,同时要注意乱码问题,后台处理传过来的参数时,添加以下代码:

java.net.URLDecoder.decode(params , "UTF-8");

serialize():

jquery中使用ajax时常常需要拼装input数据为’username=abc&password=1111111′这种形式,

get 提交不安全,方法,变量名都暴露了,如果非要get提交,需要做必要的url编码处理。

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值