Here is what I found at:
http://java.sun.com/products/jsp/syntax/1.2/syntaxref1214.html#8828

"The <jsp:include> element allows you to include either a static or
dynamic resource in a JSP page. The results of including static and
dynamic resources are quite different. If the resource is static, its
content is included in the calling JSP page. If the resource is
dynamic, it acts on a request and sends back a result that is included
in the JSP page. When the include action is finished, the JSP
container continues processing the remainder of the JSP page."

So, what I am doing is perfectly legitimate. I include a dynamic
resource (spec does not clarify the type of "resource" or its nesting
level). It should return result, to be included in the main page. And
"JSP container continues processing the remainder of the JSP page",
which Tomcat does not do. It is a bug.

Resin works exactly as I expect, and Jetty works too with a proxy JSP
page. I have not tried other servers yet.

Thank you,
   Michael.

On Apr 1, 2005 10:39 AM, Tim Funk <[EMAIL PROTECTED]> wrote:
> You cannot perform a forward inside an include. [Just like you can't set any
> headers, including cookies,  in an include or a host of other things while in
> an include.]
> 
> -Tim
> 
> Michael J. wrote:
> 
> > Hello all,
> >
> > I have master jsp page, and I try to jsp:include
> > page="/strutsAction.do", which forwards to detail jsp page,
> > but this does not work. On Tomcat 4.x and 5.x the detail
> > page content is included, but further content from the
> > master page is stripped out.
> >
> > According to jsp specs, if I include a resource with
> > jsp:include, its content should be included in the page.
> > Afaik the spec does not specify nesting level.
> >
> > I looked in the code. ApplicationDispatcher correctly
> > identifies the first request to strutsAction.do as "Path
> > Based Include". But when struts action forwards to detail
> > jsp, ApplicationDispatcher identifies it as "Path Based
> > Forward". doForward() is called instead of doInclude(), and
> > ApplicationDispatcher flushes and closes the response
> > writer. Thus, Jasper cannot write the rest of master page
> > content to writer, and throws
> > "org.apache.jasper.JasperException: Stream closed".
> >
> > Without thinking much, I commented out writer flushing in
> > ApplicationDispatcher.doForward(). It seems to work on
> > Tomcat 4.1.31, but failed on Tomcat 5.0. Anyway, I am not
> > sure that I did a right thing and that all buffers are properly being
> > closed now. Would be great if Tomcat devs look into it.
> >
> > Btw, Jetty does not work as I want, too. BUT: I tried to create a
> > "proxy" JSP page, which is included in main JSP page. This proxy page
> > includes strutsAction.do, which forwards to real JSP page that I want
> > to include (whew!) Jetty works perfectly fine with this proxy JSP
> > page!
> >
> > Also, Resin works fine both with direct including of struts action
> > from main page, and with proxy JSP page.
> >
> > So, I believe that this is a Tomcat bug.
> >
> 
> ---------------------------------------------------------------------
> 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]

Reply via email to