Search in sources :

Example 1 with BodyContent

use of jakarta.servlet.jsp.tagext.BodyContent in project tomcat by apache.

the class JspRuntimeLibrary method include.

/**
 * Perform a RequestDispatcher.include() operation, with optional flushing
 * of the response beforehand.
 *
 * @param request The servlet request we are processing
 * @param response The servlet response we are processing
 * @param relativePath The relative path of the resource to be included
 * @param out The Writer to whom we are currently writing
 * @param flush Should we flush before the include is processed?
 *
 * @exception IOException if thrown by the included servlet
 * @exception ServletException if thrown by the included servlet
 */
public static void include(ServletRequest request, ServletResponse response, String relativePath, JspWriter out, boolean flush) throws IOException, ServletException {
    if (flush && !(out instanceof BodyContent)) {
        out.flush();
    }
    // FIXME - It is tempting to use request.getRequestDispatcher() to
    // resolve a relative path directly, but Catalina currently does not
    // take into account whether the caller is inside a RequestDispatcher
    // include or not.  Whether Catalina *should* take that into account
    // is a spec issue currently under review.  In the mean time,
    // replicate Jasper's previous behavior
    String resourcePath = getContextRelativePath(request, relativePath);
    RequestDispatcher rd = request.getRequestDispatcher(resourcePath);
    rd.include(request, new ServletResponseWrapperInclude(response, out));
}
Also used : BodyContent(jakarta.servlet.jsp.tagext.BodyContent) RequestDispatcher(jakarta.servlet.RequestDispatcher)

Example 2 with BodyContent

use of jakarta.servlet.jsp.tagext.BodyContent in project tomcat by apache.

the class JspRuntimeLibrary method startBufferedBody.

public static JspWriter startBufferedBody(PageContext pageContext, BodyTag tag) throws JspException {
    BodyContent out = pageContext.pushBody();
    tag.setBodyContent(out);
    tag.doInitBody();
    return out;
}
Also used : BodyContent(jakarta.servlet.jsp.tagext.BodyContent)

Aggregations

BodyContent (jakarta.servlet.jsp.tagext.BodyContent)2 RequestDispatcher (jakarta.servlet.RequestDispatcher)1