Use a Layout Page to Merge Shared Parts and Main Content
A potential problem with including shared parts in every page is that while you need to change the content of the shared parts in only one place, global layout, color, and font changes are still not easy to make. For instance, if you want to add a “news flash” section on the righthand side of all pages, you must edit every file and add this content.
A more powerful way to provide a consistent look and feel is to turn things around: instead of letting each page include the shared parts, let one layout page include both the shared parts and the main content of each page. Example 9-2 shows what such a layout page might look like.
<%@ page contentType="text/html" %> <%@ taglib prefix="c" uri="http://java.sun.com/jstl/core" %> <c:import url="/vars/default.jsp" /> <c:catch> <c:import url="/vars/${param.page}.jsp" /> </c:catch> <%@ include file="/shared/header.jspf" %> <table width="90%"> <tr> <td valign="top" align="center" bgcolor="lightblue"> <c:import url="/shared/navigation.jsp" /> </td> <td valign="middle" align="center" width="80%"> <c:import url="/pages/${param.page}.jsp" /> </td> </tr> </table> <%@ include file="/shared/footer.htmlf" %>
When this page is invoked with a URL that includes a query string
parameter named page with the name of the main content page, it renders a response with all the shared portions as well as the main content ...