In a raw servlet programming, it is trivial,
just get response outputstream, set headers and pass it
to the excelGen (as a poorman's way, close the connection after done)
Wicket got to have a more structured api for this common task.
>This one (even with model args) falls to the same category of
>getting the inputstream actively. I do not see how I can
>define the model to get data since the controlling side is
>excelGen(outputstream). it keeps writing data to outputstream.
>and I am trying to get it directly send back to browser.
>It has to directly write to the response stream in a single thread
>or it would block.
>
>>see DownloadLink
>>
>>-igor
>>
>>
>>On Tue, Apr 1, 2008 at 12:45 AM, <[EMAIL PROTECTED]> wrote:
>>> This does not apply as it copies input to output.
>>> My issue is that in OnClick() I call
>>>
>>> excelGen(OutputStream)
>>>
>>> to produce the bytes on the fly. but the ResourceStream
>>> needs InputStream that wicket would read data to send as response.
>>> My take is that I need to get a handle of the reponse
>>> outputstream to pass it to excelGen. But How to do it at wicket api level
>
>>instead
>>> of bypass it to directly get servlet reponse stream.
>>>
>>>
>>>
>>> >see Streams.copy() in wicket utils package
>>> >
>>> >-igor
>>> >
>>> >On Tue, Apr 1, 2008 at 12:31 AM, <[EMAIL PROTECTED]> wrote:
>>> >> Hello:
>>> >> I am trying to export dynamically generated excel file.
>>> >> The generator would send the file.xls to an OutputStream.
>>> >>
>>> >> In wicket, I am trying to use example as below but
>>> >> how can I connect the OutputStream to the inputstream
>>> >> ins. Pipedoutputstream would block. Using a separate thread
>>> >> is not desirable.
>>> >>
>>> >> public void onClick() {
>>> >>
>>> >> IResourceStream stream = new AbstractResourceStream() {
>>> >>
>>> >> public InputStream getInputStream() throws
>>> >ResourceStreamNotFoundException {
>>> >>
>>> >>
>>> >> return ins;
>>> >> }
>>> >>
>>> >> public void close() throws IOException {
>>> >> ins.close();
>>> >> }
>>> >> };
>>> >>
>>> >> getRequestCycle().setRequestTarget(
>>> >> new
>>> >ResourceStreamRequestTarget(stream).setFileName("file.xls"));
>>> >
>>> >---------------------------------------------------------------------
>>> >To unsubscribe, e-mail: [EMAIL PROTECTED]
>>> >For additional commands, e-mail: [EMAIL PROTECTED]
>>> >
>>>
>>> ---------------------------------------------------------------------
>>> To unsubscribe, e-mail: [EMAIL PROTECTED]
>>> For additional commands, e-mail: [EMAIL PROTECTED]
>>>
>>>
>>
>>---------------------------------------------------------------------
>>To unsubscribe, e-mail: [EMAIL PROTECTED]
>>For additional commands, e-mail: [EMAIL PROTECTED]
>>
>
>---------------------------------------------------------------------
>To unsubscribe, e-mail: [EMAIL PROTECTED]
>For additional commands, e-mail: [EMAIL PROTECTED]
>
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]