Adverts
You would have thought that including one page in another was a simple thing to do. You would be greatly mistaken if you held this notion for JSF (Java Server Faces). A number of querks with the way JSF is integrated with JSP make includes supprisingly difficult. Actually that's not strictly true. Includes are quite easy as long as you only want to include verbatim HTML with no JSF tags which I think is fairly unlikely.
The problem is a life-cycle one. If you want to mix HTML / JSP and JSF in the included page all the HTML has to be inside f:verbatim tags or it will appear below the results of the JSF tags. Basically, what is happening is the JSF tags are getting processed and output before any of the JSP tags (which includes passing though the HTML).
The solution is to wrap any HTML in f:verbatim tags but this doesn't work very well, if at all, if you are using XML JSP (files with a .jspx extension) because the page has to be vaild XML and generally just wrapping f:verbatim round the (X)HTML will break that constraint.
Solution One
One solution is to try and translate the HTML into JSF tags which is a painful job at best because h:panelGrid and h:panelGroup don't support most of the useful shortcuts you can use when developing HTML (for instance align="center" on a td - see another article for a solution to this one).
Solution Two
The other solution is a complete hack but it works. Place your HTML in a CDATA section which is itself inside a f:verbatim tags thus: <![CDATA[<p>Some HTML</p>]]>. Not pretty but it may be a quicker way to develop a site.