Brian, While Nick's solution certainly works, it doesn't follow best practices, MVC in particular (No offense Nick). Technically a view component such as a Servlet or JSP should be responsible for writing the response back to the client. The Action is responsible for flow control and interacting with business components.
I solved a similar problem by having the Action place a byte array of the PDF content and the content type (as a String) in request scope and forwarding to a Servlet. The Servlet's (called BinaryOutputServlet) sole purpose is to retrieve the content and content type from request scope and stream it back to the client. This is where Nick's example code would fit nicely. Now, in your case you would probably put a reference to the PDF file in request scope instead of a byte array, especially if the PDF documents are large. In my case the content was relatively small and was generated dynamically. If you design the Servlet generically it can be reused in any project that requires the application to stream the content of any type of file to the client (gif, jpg, rdf, etc). -- Virtually, Andre Van Klaveren SCP --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]