As a general rule you always want to close any stream when done, unless you know by design that you need it to remain open, so yes, you probably want to close it.

That being said, I've seen *PLENTY* of code that does things like this that don't close the stream, and as far as I could tell it was well-behaved code otherwise... I suspect the container will close the stream at the end of the request processing cycle if it's still open, but I always close it to be certain. Better to be explicit :)

Frank

David Johnson wrote:
Wow, excellent. Thanks! is tehre anything IU need to do to close my PrintWriter in the Action class? right now I have

response.setContentType("application/pdf");
response.setHeader("Content-disposition", "inline" );
PrintWriter out = response.getWriter();

socket.write(out); // I get my PDF through thtis socket



do I need to close() it explicitly?

On 5/12/05, Frank W. Zammetti <[EMAIL PROTECTED]> wrote:

Return null. That's it (seriously!) Null effectively means "do not
forward to anything, the response is completely formed".

Frank

David Johnson wrote:

Okay, I've got it opening the second browser (finally got back to it)
using the target="_new" in the form declaration, but here's the real

problem

I'm in the action class, and I can can work on the response using

response.setContentType("application/pdf");
response.setHeader("Content-disposition", "inline" );

BUT, when I get to the end of my action class, what do I return? I cant
return to a JSP page because I've set the content type to be PDF (or

excel)

So, instead of

mapping.findForward("success");

what can I do?

On 5/12/05, *Frank W. Zammetti* <[EMAIL PROTECTED]
<mailto:[EMAIL PROTECTED]>> wrote:

Ugh, I always forget the simple target attribute! Absolutely agreed,
that's probably the best approach.

--
Frank W. Zammetti
Founder and Chief Software Architect
Omnytex Technologies
http://www.omnytex.com

On Thu, May 12, 2005 11:16 am, David Johnson said:

whoa that's simple. I'm trying that first!!!! Thanks

One things though, I'll have to set the "target" conditionally,

only when

the user clicks "PDF" or "EXCEL" since I dont **always** want it

opening a

new window...

function setTarget(target) {
document.forms[0].target=target;
}

On 5/12/05, Aladin Alaily <[EMAIL PROTECTED]

<mailto:[EMAIL PROTECTED]>> wrote:

Hi Dave,

This is pretty straightforward. In browser "a", you have a

button that

says:

"Export to PDF"

The code would look like this:

<html:form action="/exportToPdf.do" target="_NEW">
<submit name="export" value="Export to PDF">
</html>

When the user clicks on the button, the action "exportToPdf.do"

opens an

ServletOutputStream and writes whatever you want. The headers

are also

set to the content-type you want and the format you want (inline or
attachment).

Aladin



Hey all

is it possible to forme my struts app to open up a second browser

window

for
the purpose of streaming a different content type (like a pdf

file)

into

it
while maintaining the page in the original browser?

Essentially, I have a nicely rendered HTML report in browser

"a" and

when

the user clicks "export to PDF" or "export to excel" I want a NEW

browser

to
pop up into which I will send the response with the headerType

set to

the

appropriate type.

the generation of the XL and PDF is handled for me, but the

app flow

is

where Im foggy.

anyone done this?

--
-Dave
[EMAIL PROTECTED] <mailto:[EMAIL PROTECTED]>



-- -Dave [EMAIL PROTECTED] <mailto:[EMAIL PROTECTED]>




-- -Dave [EMAIL PROTECTED] <mailto:[EMAIL PROTECTED]>

-- Frank W. Zammetti Founder and Chief Software Architect Omnytex Technologies http://www.omnytex.com






-- Frank W. Zammetti Founder and Chief Software Architect Omnytex Technologies http://www.omnytex.com


--------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]



Reply via email to