此片段达到的效果是:访问此请求,浏览器将打开新的界面并显示pdf文件预览,在文件预览界面可以下载该pdf文件。

1、jsp界面代码

2、js代码

function getVerPdf() {

window.open(‘/pms/jsp/version/getPrdVerListPdf?page=’

+ $(“#getPage”).html() + ‘&key=’ + $(“#select”).val());

}

3、java代码

/**

*

* Purpose :将产品版本列表导出为pdf格式

*

* @param req

* 请求

* @param resp

* 应答

* @param page

* 当前页数

*/

@RequestMapping(value = “getPrdVerListPdf”)

public void getPrdTypeList(HttpServletRequest req, HttpServletResponse resp, Integer page, String key) {

resp.setContentType(“application/pdf”);

// 弹框选择保存路径和文件名

// resp.setHeader(“content-disposition”,

// “attachment;filename=PrdVerList.pdf”);

// 得到当前页的数据

List verList = prdVersionSer.getAllPrdVersion(key);

if (verList.size() == 0) {

// 如果没有数据,则返回主界面并显示提示消息

req.setAttribute(“getFileMsg”, “没有符合条件的信息!”);

req.setAttribute(“select”, key);

try {

req.getRequestDispatcher(“/jsp/version/ver_list.jsp”).forward(req, resp);

} catch (Exception e) {

e.printStackTrace();

}

} else {

// 如果有数据,则显示pdf文件

JRBeanCollectionDataSource ds = new JRBeanCollectionDataSource(verList);

String reportPath = null;

Map map = new HashMap();

if (key != “”) {

map.put(“prdName”, verList.get(0).getPrdName());

} else {

map.put(“prdName”, “”);

}

reportPath = req.getServletContext().getRealPath(“/reports/prdVerListByPrdName.jasper”);

InputStream is = null;

try {

is = new FileInputStream(reportPath);

JasperRunManager.runReportToPdfStream(is, resp.getOutputStream(), map, ds);

} catch (Exception e) {

e.printStackTrace();

} finally {

if (is != null) {

try {

is.close();

} catch (IOException e) {

e.printStackTrace();

}

}

}

}

}

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。


版权声明:本文为weixin_35619710原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
原文链接:https://blog.csdn.net/weixin_35619710/article/details/114136447