Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Java EE (J2EE) и Spring > Выгрузка бинарных данных


Автор: geckelberryfinn 9.1.2007, 14:14
Проблема заключается в следующем.
Необходимо написать JSPшку, которая бы формировала некоторую структуру (на самом деле XLS файл суть-XML или HTML), после создания которой выгружала бы ее именно как XLS (Excel умеет открывать и XML и HTML). Необходимо, чтобы появилось стандартное окошко "Сохранить файл как..."
Я не очень хорошо разбираюсь в JSP, поэтому использую следующий код
Код

<%@ page import="com.alphablox.blox.form.*" %>
<%-- Import the Blox custom tag libraries --%>
<%@ taglib uri="bloxtld" prefix="blox"%>
<%@ taglib uri="bloxformtld" prefix="bloxform"%>
<%@ page contentType="application/octet-stream;" %>

<% out.println("<HTML><HEAD><title></title></HEAD><BODY><table width='100%' height='100%' border=1>    <tr>        <td colspan=3 align=center>There is a table</td>    </tr>    <tr>        <td>one</td>        <td>two</td>        <td>three</td></tr></table></BODY></HTML>"); %>


Т.е. указываю в заголовке тип application/octet-stream. Но при этом "выплевывается" не та строка, что нужна, а само содержимое JSP-шки, т.е:

Код

<!-- START ALPHABLOX HEADER -->

<META HTTP-EQUIV="Pragma" CONTENT="no-cache">
<LINK REL="stylesheet" HREF="/AlphabloxServer/theme/coleman/coleman_dhtml.css" TYPE="text/css">
<LINK REL="stylesheet" HREF="/AlphabloxServer/theme/dhtml_view.css" TYPE="text/css">
<script language="javascript" src="/AlphabloxServer/jslib/compatibility.js"></script>
<script language="javascript" src="/AlphabloxServer/jslib/stringUtilities.js"></script>
<script language="javascript" src="/AlphabloxServer/jslib/browserCheck.js"></script>
<script language="javascript" src="/AlphabloxServer/jslib/gecko/gecko.js"></script>
<script language="javascript" src="/AlphabloxServer/jslib/core.js"></script>
<script language="javascript" src="/AlphabloxServer/jslib/BloxHttp.js"></script>
<script language="javascript" src="/AlphabloxServer/jslib/Soap.js"></script>
<script language="javascript" src="/AlphabloxServer/jslib/BloxAPI.js"></script>
<script language="javascript" src="/AlphabloxServer/jslib/Events.js"></script>
<script language="javascript" src="/AlphabloxServer/jslib/Blox.js"></script>
<script language="javascript" src="/AlphabloxServer/jslib/Dialog.js"></script>
<script language="javascript" src="/AlphabloxServer/jslib/BaseBloxMenu.js"></script>
<script language="javascript" src="/AlphabloxServer/jslib/gecko/BloxMenu_gecko.js"></script>
<script language="javascript" src="/AlphabloxServer/jslib/color.js"></script>
<script language="javascript" src="/AlphabloxServer/jslib/gecko/grid_gecko.js"></script>
<script language="javascript" src="/AlphabloxServer/jslib/cell.js"></script>
<script>
if ( !bloxAPI ) {
    document.cookie="AAS_SessionID=5wyxwDnnns62ja-8k-iWW0f;path=/";
    var bloxAPI = new BloxAPI( "dhtml", 120000, "", "coleman","vwrpt" );
    bloxAPI.setLocalizedString( "MODEL_CLICK_TO_RESTORE","????????, ????? ????????????");
    bloxAPI.setLocalizedString( "MODEL_EXPIRED_SESSION_TIP","????? ?????? ?????? ???????, ???????? ????????");
    bloxAPI.setLocalizedString( "OK","??");
    bloxAPI.setLocalizedString( "MODEL_CLICKTOEXPAND","??????");
    bloxAPI.setLocalizedString( "MODEL_CLICKTOCOLLAPSE","???????????");
    bloxAPI.setLocalizedString( "CLIENT_CLIPBOARD_NOT_SUPPORTED","???? ??????-??????? ?? ???????????? ??????????? ? ????? ??????");
    bloxAPI.setLocalizedString( "CLIENT_IDENTIFICATION","DB2 Alphablox");
    bloxAPI.setLocalizedString( "CLIENT_CHART_HEIGHT","?? ??????? ???????? ?????? ? ?????? ?????????");
    bloxAPI.setLocalizedString( "CLIENT_COMM_ERROR","?????? ?????");
    bloxAPI.setLocalizedString( "CLIENT_GRID_FAILURE","?? ??????? ?????????????? ?????? ??????????????? ????, ??? ????? ????????? ????????? ????????????");
    bloxAPI.setLocalizedString( "CLIENT_PARSE_ERROR","?? ??????? ???????????????? ????? ??????? (???????? ???????)");
    bloxAPI.setLocalizedString( "CLIENT_UNRECOVERABLE_ERROR","????????? ??????????????? ?????? ??? ?????????????? ? ????????\r\n\r\n?????????:");
    bloxAPI.setLocalizedString( "CLIENT_COMM_TROUBLE","???????? ???????? ??? ?????????????? ? ????????\r\n\r\n???????:");
}
</script>

<!-- END ALPHABLOX HEADER -->



out.println("<HTML><HEAD><title></title></HEAD><BODY><table width='100%' height='100%' border=1>    <tr>        <td colspan=3 align=center>There is a table</td>    </tr>    <tr>        <td>one</td>        <td>two</td>        <td>three</td></tr></table></BODY></HTML>");



(вопросы  - это исковерканная кодировка)

Вопрос: как это правильно реализовать? 

Автор: tux 9.1.2007, 14:24
Код

<%@ page contentType="application/vnd.ms-excel" %>
<% response.setHeader("Content-Disposition", "inline; filename=\"" + "unknown.xls" + "\"");

Это что-ли? Вопрос, вообще говоря, не по адресу, JSP здесь не при чем.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)