【发布时间】:2011-12-29 03:21:02
【问题描述】:
我有一个 jsp (itemSearch.jsp) 来显示基于用户提交的所有项目。用户提交后,我将调用 java 方法来提交所有参数,如下所示
submitItems = itemManager.getProcessedItems(1, itemID, startPage, endPage, fromDate, toDate);
在 getProcessedItems 中,我使用 JDBC 连接获取数据
public ArrayList getProcessedItems(1, itemID, startPage, endPage, fromDate, toDate) {
ArrayList p_items=new ArrayList();
Connection connection = null;
String sqlStatement = null;
try {
connection = DBManager.getConnection(DBManager.EPM_DATASOURCE_NAME);
if(set==1) {
sqlStatement = "SELECT I.lineid, I.date,S.STATUS, S.DATETIME, ";
sqlStatement += "S.TOTAL FROM ITEM I, LITEM LI, ITEM_STATUS S ";
sqlStatement += "WHERE I.LINEID=LI.ID AND I.ITEMID=? ";
if (fromDate !=null && toDate!=null){
SimpleDateFormat fd = new SimpleDateFormat("MM/dd/yyyy");
String fromdateString = fd.format(fromDate);
String todateString = fd.format(toDate);
sqlStatement += " AND I.PDATE BETWEEN RANGE_DATE('" + fd.format(fromDate) + "','MM/DD/YYYY') AND RANGE_DATE('" + fd.format(toDate) + "','MM/DD/YYYY')";
}
sqlStatement += "ORDER BY I.PDATE DESC";
}
PreparedStatement ps = connection.prepareStatement(paginationBegin+sqlStatement+paginationEnd);
ps.setInt(1, ID);
ResultSet rs = ps.executeQuery();
while(rs.next()) {
if(items.contains(new Integer(rs.getInt("itemid")))==false) {
items.add(new Integer(rs.getInt("itemid")));
ReportItem ri = new ReportItem();
ri.setLineItemID(rs.getInt("lineid"));
ri.setTransmitted(rs.getTimestamp("idate"));
ri.setStatus(rs.getString("status"));
ri.setStatusDateTime(rs.getTimestamp("s_datetime"));
p_items.add(ri);
}
}
rs.close();
ps.close();
} catch (SQLException e) {
log("ERROR");
} catch (NamingException e) {
log("ERROR");
} finally {
DBManager.closeConnection(connection);
}
return p_items;
}
这会在 itemSearch.jsp 中正确显示数据,但现在我想添加 CSV 文件(jsp 中的超链接),其中包含文件中显示的数据以供下载。
即
<div align="right" class="TableRows" style="padding-right:10px"><a href="" class="TableRowLinks">CSV File</a></div>
问题 1.如何从查询结果生成CSV文件? 2.如何在jsp文件中给出相同的链接?
【问题讨论】:
标签: java jsp jakarta-ee jdbc csv