zoukankan      html  css  js  c++  java
  • 在jsp中点击按钮,在bean中把已经查出的数据,生成csv文件,然后在ie中自动打开

    Quote:

    这个问题可以分两部分讨论:

    1、csv文件的格式
    2、通过jsp向客户端输出csv文件

    第一个问题我们就按简单的来讨论,可以认为是每个字段用""包含后再用,号分割
    比如:
    "a","b","c"
    "d","e","f"

    现在我们有了csv文件的内容,我们看看怎么把它输出到客户端

    一种变通的方法是把csv的内容写到一个临时文件中,然后让客户端下载这个临时文件。

    不过最简单的方法是直接向客户端输出:以下是csv.jsp的内容
    "a","b","c"
    "d","e","f"

    就这么简单,这些信息就输出到客户端了。

    不过现在的情况估计是不会满足楼主需要的,因为浏览器自己处理了这些信息,而不是交给excel来处理。
    为了让浏览器把处理权让处理,我们需要在jsp的头部加上一些信息,告诉浏览器这些信息不用你来操心,交给其他合适的程序(对应csv来说当然是excel咯)来处理就好了。
    先告诉它“以下信息是m$的,不是html的”:
    <%@ page language="java" contentType="application/ms-excel"%>
    再告诉它文件名是test.csv
    <%response.setHeader("Content-Disposition","filename=test.xls");%>
    最后是文件的内容:
    "a","b","c"
    "d","e","f"

    全文就是这个样子
    <%@ page language="java" contentType="application/ms-excel"%>
    <%response.setHeader("Content-Disposition","filename=test.xls");%>
    "a","b","c"
    "d","e","f"

    楼主把abcd什么的换成你从javaBean中查到的东西就可以了。

    再访问这个网页,ie的话会提示你打开或者保存,应该是楼主想要的结果了吧。

    以下是结合jstl实现的代码:
    test.jsp文件
    Code:

    <%@ page contentType="text/html;charset=GBK" language="java" %>
    <%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
    <%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %>
    <%@ taglib uri="http://java.sun.com/jsp/jstl/functions" prefix="fn"%>
    <%
    response.resetBuffer();
    response.setContentType("application/unknow");
    response.setHeader("Content-disposition",
    "attachment; filename=test.csv");
    %><c:forEach items="$" var="record">$,$</c:forEach>

    Collection是一个request.
  • 相关阅读:
    jQuery的面试题
    DOM面试题
    JavaScript高级
    Bootstrap面试题
    ajax面试题
    CSS3面试题
    MySQL的列约束
    MySQL数据库介绍
    java数据类型之间的转换
    java中变量和标识符名命名规范
  • 原文地址:https://www.cnblogs.com/dkblog/p/1980924.html
Copyright © 2011-2022 走看看