【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
随机推荐
- 【SAP BI】BW如何连接SQLSERVER数据库
一.工具 源版本: SQLSERVER2008 数据库TEST 目标版本: SAP 客户端 7.4 服务器7.5 二.在BW中建立数据库连接,并生成数据源 2.1 登录SAP BW开发机 ,输 ...
- 解决循环里map不被重复覆盖的问题
参考:https://blog.csdn.net/zyf642112750/article/details/78295113 这样就不会一直重复 项目管理系统 了
- springmvc controller常见问题
controller 的各种操作都是依赖服务器启动后来注入很多功能的,所以热部署经常会没有效果(因为没有被注入,除非在 方法名() 的括号中定义对象 [ 例如: HttpServletResponse ...
- Django的简介
一.MTV模型 Django的MTV模式: Model(模型):和数据库相关的.负责业务对象与数据库的对象(ORM) Template(,模板):放所有的HTML文件 模板语法:目的是将变量(数据库内 ...
- HTTP简单教程
目录 HTTP简介 HTTP工作原理 HTTP消息结构 客户端请求消息 服务器响应消息 实例 HTTP请求方法 HTTP响应头信息 HTTP状态码 HTTP状态码分类 HTTP状态码列表 HTTP c ...
- Linux☞如何修改文件权限
修改文件/目录的权限:chmod 规则 文件/目录名 规则: 角色:u 自己人 user g 同组人 group o 其他人 other a 所有人 all 操作: + - 权限 ...
- 优化 VR 动作类游戏《Space Pirate Trainer*》以便在英特尔® 集成显卡上实现卓越的表现
Space Pirate Trainer* 是一款面向 HTC Vive*.Oculus Touch* 和 Windows Mixed Reality* 的原创发行游戏.版本 1.0 于 2017 年 ...
- access数据库频繁读取操作会出现 System.Data.OleDb.OleDbException 的异常解决
asp.net access数据库 本来想着打开一个access数据库连接后,不关闭,下次操作数据了,直接拿来用,谁知道连着测试64次后(大概这么多次),就会出现System.Data.OleDb.O ...
- ubuntu 设置全局代理
ubuntu配置shadowsocks全局代理 在mac.window平台下都有shadowsocks客户端,因此这两个平台不叙述太多,现在介绍ubuntu下的配置方法. 1.安装python lin ...
- MySQL Proxy和 Amoeba 工作机制浅析
MySQL Proxy处于客户端应用程序和MySQL服务器之间,通过截断.改变并转发客户端和后端数据库之间的通信来实现其功能,这和WinGate 之类的网络代理服务器的基本思想是一样的.代理服务器是和 ...