请为我的要求提供任何帮助 我正在编写jsp代码来从bean获取数据并以表格格式显示该数据,除了我需要在底部放置下载选项以下载显示的表格在" csv"或者" Excelsheet"格式。
我的代码就像这样
<%@page contentType="text/html" pageEncoding="UTF-8"%>
<%@ page import = "com.preva.vo.StoppageDetails"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<link href="css/cal.css" rel="stylesheet" type="text/css" />
<link href="css/sty.css" rel="stylesheet" type="text/css" />
<link href="css/tabborder.css" rel="stylesheet" type="text/css" />
</head>
<body>
<jsp:include page="Header.jsp" />
<table align=center border=0 cellspacing=0 cellpadding=0>
<tr ><td colSpan=5 align=center><b>Overspeed Details</b></td></tr>
<tr ><td colspan=5 align=center>
<b><%=request.getParameter("vehicleId") %></b></td></tr>
<tr><td>From
<%=session.getAttribute("fromdate") %>
to
<%=session.getAttribute("startdate") %></td></tr>
</table><br></br>
<table class='rptTbl_sortable' width='80%' align=center border='0'>
<thead>
<tr class="rptHdrRow">
<th id="index" class="rptHdrCol_sort" nowrap>DeviceID</th>
<th id="date" class="rptHdrCol_sort" nowrap>Date</th>
<th id="time" class="rptHdrCol_sort" nowrap>Speed</th>
<th id="statusdesc" class="rptHdrCol_sort" nowrap>Status</th>
<th id="address" class="rptHdrCol_sort" nowrap>Address</th>
</tr>
</thead>
<tbody>
<c:forEach items="${sessionScope.overspeeddetails}" var="overspeeddetailsvar">
<tr class="rptBodyRowOdd">
<td><c:out value="${overspeeddetailsvar.deviceID}"> </c:out></td>
<td><c:out value="${overspeeddetailsvar.TIMESTAMP}"></c:out></td>
<td><c:out value="${overspeeddetailsvar.speed}"></c:out></td>
<td><c:out value="${overspeeddetailsvar.statuscode}"></c:out></td>
<td><c:out value="${overspeeddetailsvar.address}"></c:out></td>
</tr>
<tr class="rptBodyRowEven">
<td><c:out value="${overspeeddetailsvar.deviceID}"></c:out></td>
<td><c:out value="${overspeeddetailsvar.TIMESTAMP}"></c:out></td>
<td> <c:out value="${overspeeddetailsvar.speed}"></c:out></td>
<td><c:out value="${overspeeddetailsvar.statuscode}"></c:out></td>
<td><c:out value="${overspeeddetailsvar.address}"></c:out></td>
</tr> </c:forEach>
</tbody>
</table>
</body>
</html>
答案 0 :(得分:0)
因为您的数据存储在会话中,所以您只需为CSV创建新的JSP,其中包含:
<c:forEach>
text/csv
作为<@ page
指令Content-disposition
标头设置为attachment
此页面将从您的主JSP链接。对于excel二进制格式,您可能需要一些库。从架构的角度来看,这是MVC模式的典型示例:您有一个控制器,它准备模型(在您的情况下为超速详细信息)和多个视图:html table,csv和excel文件。
答案 1 :(得分:0)
让它指向一些servlet,它将PDF文件写入响应的输出流,并且重要的是,将内容处置标头设置为“attachment”。这将导致web浏览器弹出“另存为”对话框(您自己调用的“下载选项”)。
您可以从中获得一些想法:more