【Java】数据库查询的数据直接以指定文件类型下载到本地(弹出下载框)
欲实现的功能目标:当点击下图的导出数据文件时弹出文件下载框,默认csv格式,用户自定义下载的本地路径

遇到的问题:
1.项目之前做过一次下载,但是是使用了本地文件模板。用输入流读取文件模板,插入数据,以输出流输出,弹出下载框下载。而这次的情况是不能在后台指定本地文件路径,也就是无法读取模板文件,直接将数据库查询出的数据写成指定格式并供用户选择地址下载。省去输入流读取本地文件一环。
2.下载框始终无法弹出,而是直接在页面显示数据。
解决:
1.
/**
* 导出CSV数据
* @return 数据
*/
@RequestMapping(value = "dataExport",method = RequestMethod.POST)
public void dataExport(HttpServletResponse response) throws Exception{ //查询出需要打印的数据
List<DsPrintTask> list=sc182211Logic.findDataExport(); //设置下载弹出框
response.setContentType("application/csv;charset=gbk");
response.setHeader("Content-Disposition","attachment;filename="+URLEncoder.encode("打印标签.csv", "UTF-8"));
//新建打印输出对象
PrintWriter out = response.getWriter(); out.write("任务编码,操作码,阅读码,品牌名, 等级名"+"\n");
for(DsPrintTask s:list){
out.write(s.getPrintTaskId()+","+s.getOperateBar()+","+s.getReadBar()+","+s.getBrandName()+","+s.getGradeName()+"\n");
}
2.下载框不弹出,文件内容在网页直接显示的原因是请求方式有问题。下面代码中的
$("#main-content").postUrl(Main.contextPath + "/SC182211/dataExport");是用的公司框架里自己封装的JS方法,使用这个会造成下载框不弹出的问题。于是使用后面的form表单提交方法
$("#SC182211_EXPORT").click(function(){
// $("#main-content").postUrl(Main.contextPath + "/SC182211/dataExport");
var form = $("<form>"); //定义一个form表单
form.attr('style', 'display:none'); //在form表单中添加查询参数
form.attr('target', '');
form.attr('method', 'post');
form.attr('action', "/msk-web/SC182211/dataExport");
var input1 = $('<input>');
input1.attr('type', 'hidden');
input1.attr('name', 'strUrl'); $('body').append(form); //将表单放置在web中
form.append(input1); //将查询参数控件提交到表单上
form.submit();
});
【Java】数据库查询的数据直接以指定文件类型下载到本地(弹出下载框)的更多相关文章
- File操作-将数据库里的数据写入到指定路径的txt文件里
package com.Cristin.File;//将数据库里的数据写入到指定路径的txt文件里 import java.io.File;import java.io.FileOutputStrea ...
- 用java语言将数据库中的数据表转换为xml文件的通用程序(细化)
转自:https://www.cnblogs.com/wudage/p/7650685.html 总是在网络上copy别人的源代码,今天我也贴出自己今天写的源码,相信这个程序会对大家在平时的工作中需要 ...
- 【spring data jpa】使用repository进行查询,使用userRepository.getOne(id)和userRepository.findById(id)无法从数据库查询到数据
如题: 使用repository进行查询,使用CrudRepository自带的getOne()方法和findById()方法查询,数据库中有这条数据,但是并不能查到. userRepository. ...
- Linq查询非泛型集合要指定Student类型(比如List)
#region Linq to 集合查询非泛型集合要指定Student类型 //ArrayList list = new ArrayList(); //li ...
- JAVA导出excel 直接弹出下载框
转自:https://blog.csdn.net/qq_38423105/article/details/80782283 效果展示: 1.首先准备jar包 <dependency> ...
- 在使用Ajax请求返回json数据的时候IE浏览器弹出下载保存对话框的解决方法
在使用Ajax请求返回json数据的时候IE浏览器弹出下载保存对话框的解决方法 最近在做一个小东西,使用kindeditor上传图片的时候,自己写了一个上传的方法,按照协议规则通过ajax返回json ...
- HTML input="file" 浏览时只显示指定文件类型 xls、xlsx、csv
html input="file" 浏览时只显示指定文件类型 xls.xlsx.csv <input id="fileSelect" type=" ...
- <input type="file" />浏览时只显示指定文件类型
<input type="file" />浏览时只显示指定文件类型 <input type="file" accept="appli ...
- findstr 只搜寻指定文件类型
Title:findstr 只搜寻指定文件类型 --2012-05-04 09:27 findstr /i /m /S /C:"关键字" *.php *.asp *.jsp
随机推荐
- 【转载】TCP/IP 之 大明王朝邮差
原文:TCP/IP 之 大明王朝邮差 原创 2016-05-12 刘欣 码农翻身 前言: 本文主要想说一下TCP的知识, 比喻有不恰当之处,敬请包涵. 大明王朝天启四年, 清晨. 天色刚蒙蒙亮,我就赶 ...
- day4 RHCE
12.实现一个web服务器 [root@server0 ~]# yum install httpd -y [root@server0 ~]# rpm -ql httpd 查看httpd产生的配置文件 ...
- runtime如何实现weak属性
首先了解weak是一种非拥有关系,属性所值对象销毁时,属性值会清空(nil). Runtime对注册的类会进行布局,对于weak对象会放入hash表中,用weak指向的内存地址作为key,当对象引用计 ...
- 【Excel函数】如何在excle区分一列数字是否连续
需求:区分这批卡号,哪些在一个号段 数据源: 89860616090033685544898606160900336855518986061609003368556989860616090033685 ...
- linux 命令缩写
su super user apt advanced packaging tool ifconfig interface configuration so shared object fsp frac ...
- throttle(节流)和debounce(防抖)
防抖和节流都是用来控制频繁调用的问题,但是这两种的应用场景是有区别的. throttle(节流) 有一个调用周期,在一个很长的时间里分为多段,每一段执行一次.例如onscroll,resize,500 ...
- 3.openldap生成LDAP用户
1.用migrationtools生成用户 #yum install migrationtools -y #vim /usr/share/migrationtools/migrate_common.p ...
- nginx 根据get参数重定向(根据电视访问的mac地址传递的值,来重定向访问别的url地址,这样就可以进行单台的测试环境。。)
背景是这样的: 公司要做所有客户端的迁移到别的云平台,但又担心会有问题,所以考虑分批次迁移过去,这样就需要迁移部分用户,因为客户端刷但都是统一但rom包,不能轻易发生改动,所以决定用重定向方式将部分客 ...
- 原生js和jquey获取窗口宽高,滚动条,鼠标位置总结
JQuery获取浏览器窗口的可视区域高度和宽度,滚动条高度 alert($(window).height()); //浏览器时下窗口可视区域高度 alert($(document).height( ...
- 感谢——Thunder团队
团队软件的开发,已经进入第二个阶段——Beta版本了.回头看看,我们走过了很长的一段路,也经历了很多,有意见不一的争吵.有取得暂时成功时的欢欣鼓舞,我们就像一家人,就像那首歌中唱到的,“我们是一家人, ...