Hello,
I had code in Wicket 1.x that worked perfectly to dynamically generate a
spreadsheet and send it to the user. I had to rewrite it for the new
Response classes in 1.6:
public void generateExcel(String filename, List<List<? extends
Object>> dataList) {
HSSFWorkbook myWorkBook = new HSSFWorkbook();
HSSFSheet mySheet = myWorkBook.createSheet();
... (generate sheet from dataList using HSSFSheet methods)
WebResponse response = (WebResponse)getResponse();
webResponse.setContentType("application/vnd.ms-excel");
webResponse.setAttachmentHeader(filename + ".xls");
OutputStream out = webResponse.getOutputStream();
myWorkBook.write(out);
out.close();
}
The sheet is still being populated as I need, and the client is asked to
open or save the <filename>.xls file (as expected).
The problem with 1.6 is: the current page is sent rather than the sheet I've
built. My .xls viewer complains that the file is not in the correct format
and, when I display it anyway, contains the original Wicket page, head, css,
javascript and all.
The same problems happens when generating xml from the same data list:
WebResponse response = (WebResponse)getResponse();
response.setContentType("application/xml");
response.setAttachmentHeader(filename + ".xml");
XMLStreamWriter out =
XMLOutputFactory.newInstance().createXMLStreamWriter(response.getOutputStream());
out.writeStartDocument();
... (generate XML document from dataList)
out.writeEndDocument();
out.close();
This also sends the original HTML page to the client.
Both methods worked perfectly before I migrated to Wicket 1.6, but now the
Response (returned by getResponse()) seems to behave differently. Any
ideas? Thank you very much.
--
View this message in context:
http://apache-wicket.1842946.n4.nabble.com/Generating-spreadsheet-to-send-to-Client-fails-in-1-6-tp4660579.html
Sent from the Users forum mailing list archive at Nabble.com.
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]