O'Reilly logo

JavaServer Faces by Hans Bergsten

Stay ahead with the world's most comprehensive technology and business learning platform.

With Safari, you learn the way you learn best. Get unlimited access to videos, live online training, learning paths, books, tutorials, and more.

Start Free Trial

No credit card required

Using Dynamic Includes for Pages with JSF Components

Dynamically including JSP pages containing JSF components works almost the same as dynamically including regular JSP pages, but there are a couple of important issues you need to be aware of. When you dynamically include a regular JSP page, the included page is processed and the content it produces is added to the including page’s response. The same is true when you dynamically include a JSP page containing JSF components, but only for content that is not generated by JSF components. JSF component actions in the included page add components to the component tree created by the including page, and then immediately ask each component to render itself. The result is often not what you expected. Example 12-4 and 12-5 show two pages that illustrate what’s happening.

Example 12-4. Top-level page dynamically including another (main.jsp)
<%@ page contentType="text/html" %>
<%@ taglib uri="http://java.sun.com/jsf/html" prefix="h" %>
<%@ taglib uri="http://java.sun.com/jsf/core" prefix="f" %>
<html>
  <body>
    <f:view>
      Template text at the top of the main page.
      <br>
      <h:outputText value="Text from a JSF component in the main page" />
      <br>
      <f:subview id="sv1">
        <jsp:include page="included.jsp" />
      </f:subview>
    </f:view>
  </body>
</html>
Example 12-5. Dynamically included page with template data (included.jsp)
<%@ taglib uri="http://java.sun.com/jsf/html" prefix="h" %> <%@ taglib uri="http://java.sun.com/jsf/core" prefix="f" %> Template text at the ...

With Safari, you learn the way you learn best. Get unlimited access to videos, live online training, learning paths, books, interactive tutorials, and more.

Start Free Trial

No credit card required