Dwz做前台页面,Jfinal后台使用前台下载excel【两种解决方案】
2015-01-23 17:49
351 查看
摘要: 近两天一直再整这个文件下载,本来一个都整不出来,得知Jfinal有个renderFile()就解决了,又碰到dwz前台报Http status: 200 OK ajaxOptions: parsererror thrownError: SyntaxError: Unexpected token,然后,改成jsp下载excel后奇迹般的Jfinal的renderFile()也通了,太高兴了,双喜呀!
废话不说了,开始了!
方案一:JFinal的renderFile("路径")功能
先说说我的逻辑:
前台页面点击请求发送到后台Controller,然后Controller层主要根据所需条件进行表格的组装,组装好上传到服务器后,然后跳转到前台直接显示下载框,下载即可。
前台jsp部分:
Controller部分:
然后就愉快的可以下载了
方案二:jsp页面做成的下载【给人以假象的感觉】
jsp导出excel其实就是后台查询完数据放入list集合中,然后跳转到jsp,然后jsp按照规定的格式显示出来,并且前台弹出框,所以就有了jsp下载excel
前台jsp部分:
然后就是后台部分:
这里的download.jsp是我做的一个下载弹出框要弹出格式的页面,内容如下
这里我用的是EL表达式遍历的后台传出来的集合。
以上代码属本人归纳总结,如有问题,还请多多指教。
废话不说了,开始了!
方案一:JFinal的renderFile("路径")功能
先说说我的逻辑:
前台页面点击请求发送到后台Controller,然后Controller层主要根据所需条件进行表格的组装,组装好上传到服务器后,然后跳转到前台直接显示下载框,下载即可。
前台jsp部分:
<li><a class="icon" href="<%=basePath%>feedback/expFeedBack" ><span>导出信息</span></a></li>
Controller部分:
public void expFeedBack(){ String time=""; int count = 0; String mypath=""; try { List<FeedBack> list = FeedBack.dao.find("select f.id,f.content,f.datatime,f.tele from feedback f"); count = list.size(); time = DateUtil.formatDate(); String path = new File("").getAbsolutePath().replaceAll("\\\\", "/"); //获得Tomcat的默认路径 mypath = path.substring(0,path.lastIndexOf("/"))+"/webapps/3d/excel/"+time+"-"+count+"条.xlsx"; //截取字符串 FileOutputStream os = new FileOutputStream(mypath); Workbook workBook = new SXSSFWorkbook(100); // 只在内存中保留100行记录 Sheet sheet = workBook.createSheet(); try { int i=0; Row row1 = sheet.createRow(i++); Cell cell = row1.createCell(0); cell.setCellValue("id"); cell = row1.createCell(1); cell.setCellValue("反馈内容"); cell = row1.createCell(2); cell.setCellValue("反馈时间"); cell = row1.createCell(3); cell.setCellValue("联系方式"); cell = row1.createCell(4); for (int j = 0; j < list.size(); j++) { row1 = sheet.createRow(i++); cell = row1.createCell(0); cell.setCellValue(list.get(j).getInt("id")); cell = row1.createCell(1); cell.setCellValue(list.get(j).getStr("content")); cell = row1.createCell(2); cell.setCellValue(list.get(j).getStr("datatime")); cell = row1.createCell(3); cell.setCellValue(list.get(j).getStr("tele")); cell = row1.createCell(4); } workBook.write(os); }catch(Exception e){ e.printStackTrace(); } } catch (FileNotFoundException e1) { e1.printStackTrace(); } //判断路径是否存在 if(new File(mypath).isFile()){ renderFile(new File(mypath)); }else{ renderNull(); } }
然后就愉快的可以下载了
方案二:jsp页面做成的下载【给人以假象的感觉】
jsp导出excel其实就是后台查询完数据放入list集合中,然后跳转到jsp,然后jsp按照规定的格式显示出来,并且前台弹出框,所以就有了jsp下载excel
前台jsp部分:
<li><a class="icon" href="<%=basePath%>feedback/expFeedBack" ><span>导出信息</span></a></li>
然后就是后台部分:
setAttr("feedBackList", FeedBack.dao.find("select * from feedback")); renderJsp("/admin/download.jsp");
这里的download.jsp是我做的一个下载弹出框要弹出格式的页面,内容如下
<%@ page contentType="application/vnd.ms-excel; charset=gbk" %> <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%> <%@ page language="java" pageEncoding="GBK" import="com.dxcm.common.util.*"%> <% String time = DateUtil.formatDate(); String filename = new String((time).getBytes("GBK"),"ISO-8859-1"); response.setHeader("Content-disposition","attachment; filename="+filename+".xls"); %> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=gb2312"> </head> <body > <table border="1"> <tr> <td>ID</td> <td>反馈内容</td> <td>反馈时间</td> <td>联系方式</td> </tr> <c:forEach items="${feedBackList}" var ="f"> <tr> <td>${f.id}</td> <td>${f.content}</td> <td>${f.datatime}</td> <td>${f.tele}</td> </tr> </c:forEach> </table> </body> </html>
这里我用的是EL表达式遍历的后台传出来的集合。
以上代码属本人归纳总结,如有问题,还请多多指教。
相关文章推荐
- 页面使用Ajax控件,后台不能调用前台Javascript脚本弹出消息框的解决办法
- 百度编辑器Umeditor 加 后台JFinal 加 前台DWZ提交出现白页解决方法
- 前台页面使用textarea标签,无法显示后台传入的String类型的值
- java 从后台下载xlsx格式excel 发现不可读取内容的解决方案
- 前台页面使用utf-8编码,url中包含中文参数时后台获取参数乱码问题解决
- java后台利用Apache poi 生成excel文档提供前台下载示例
- 使用jxl从web页面下载数据到本地的Excel中
- [置顶] ajax请求到后台数据,前台不用拼接字符串append追加HTML标签,一样显示到页面 (使用空模板)
- Django在前台使用富文本model,实现后台能取得到页面富文本框中的值
- SpringMVC使用@RequestBody后台返回前台中文字符串乱码的问题解决方案
- 一站式分页解决方案:后台分页PageHelper使用,页面分页,异步ajax分页pageutils.js
- java后台生成excel,前台发请求下载
- 实现页面中excel,word,pdf下载链接,而不使用浏览器打开
- MFC项目使用webbrowser控件,点击载入的页面里的文件下载链接后导致程序的崩溃问题的解决方案
- 使用jquery插件 jquery.table2excel.js 将页面中的表格下载到本地(excel格式)
- JavaScript前台页面使用jsjava对后台传过来的日期进行格式化
- java基于jxl.jar包生成Excel文件到指定目录和服务器下载两种模式的使用方法
- JFinal框架使用renderFile()进行列表页面数据导出Excel
- IE使用ajaxFileUpload上传文件后台返回json类型前台弹出下载提示框
- ajax请求到后台数据,前台不用拼接字符串append追加HTML标签,使用空模板一样显示到页面