java前台如何弹出excel下载框?

zouxinwang1993 2016-11-04 11:17:40
大家好!
我现在想实现一个前台点击导出excel表格,最开始用的window.location.href = url,
这是我的前台代码,用的是url传参:
function printFun(){
var url = '${ctx}/report/exportExcel?title='+title+'&sql='+sql+'&remark='+remark;
window.location.href = url;
}

这是我后台代码:
@RequestMapping("/exportExcel")
public void exportExcel(HttpServletRequest request, HttpServletResponse response) throws Exception{
response.setContentType("application/msexcel;charset=GBK");


这个写法在一般情况下能实现弹出并下载,但是问题来了,我url传的参数(title sql remark)其中sql 参数中包含 ‘%%’这样的特殊字符,参数就传不过去了,后台就接不到了。
例如,我的sql 是 select * from RC where 列1 like ‘%电视%’;后台就接受不到这个参数了。


后来我试了试ajax传参数,参数倒是都能传过去,但是无法弹出下载框。
代码是这样写的:
$.ajax({  
url: '${ctx}/report/exportExcel',
data:{title:title,sql:sql,remark:remark},
type: 'GET',
dataType: 'json',
timeout: 1000,
cache: false
})

sql 参数都能传过去,但是无法跳出下载框!

请问各位大神,前台应该怎么实现既能传我要求的参数,又能弹出下载框呢?
我刚开始学这个不太懂,还请讲的详细点,谢谢!
...全文
216 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
zouxinwang1993 2016-11-04
  • 打赏
  • 举报
回复
引用 1 楼 showbo 的回复:
encodeURIComponent编码下参数,ajax无法弹出下载窗口
额 ,好像是的,我这个几个参数 ,都是encode之后再decode。 那请问,有什么解决方法吗?用url传参的话,带有特殊字符又传不过去。
Go 旅城通票 2016-11-04
  • 打赏
  • 举报
回复
encodeURIComponent编码下参数,ajax无法弹出下载窗口
zouxinwang1993 2016-11-04
  • 打赏
  • 举报
回复
引用 3 楼 showbo 的回复:
encode过可以获取的,jquery的ajax提交参数就用的encodeURIComponent编码内容
不好意思哈,我可能没说清楚,有点不明白你说的,我把代码贴出来,总共试了两种方法 方法一:
function printFun(){
 var param1 = document.getElementById('title').value; 
 var title = (decodeURI(encodeURI(param1)));
  var param2 = document.getElementById('sql').value; 
 var sql = (decodeURI(encodeURI(param2)));
  var param3 = document.getElementById('remark').value; 
 var remark = (decodeURI(encodeURI(param3)));
 var url = '${ctx}/report/exportExcel?title='+title+'&sql='+sql+'&remark='+remark;
window.location.href = url;
}
这种情况下,能弹出下载框,但是sql因为包含 特殊字符 传不过去,参数是decode了的,如果不包含特殊字符,是能传过去的。 方法二: 就是也是先encode再decode,如您所说,ajax无法弹出下载框。
Go 旅城通票 2016-11-04
  • 打赏
  • 举报
回复
encode过可以获取的,jquery的ajax提交参数就用的encodeURIComponent编码内容

87,902

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧