Including JSP page into another JSP page, how to avoid multiple HEAD / BODY sections?

jakarta-ee, jsp, jspinclude

Solution

I went for this solution by passing a parameter when including the page.

in master.jsp

<head>
  blablabla
  <c:import url="slave.jsp">
    <c:param name="sectionName" value="HEAD" />
  </c:import>
</head>
<body>
  blablabla
  <c:import url="slave.jsp">
  </c:import>
</body>

and then in slave.jsp the parameter is read and the custom part of the page is rendered.

<c:choose>
  <c:when test="${param.sectionName == 'HEAD'}">
     head section here [without the <HEAD> tags !]
  </c:when>
  <c:otherwise>
     body section here [without the <BODY> tags !]
  </c:otherwise>
</c:choose>

not too nice to see but working. In this way I am able to remove the duplication of `HEAD` and `BODY` parts.

Problem

I would like to include a JSP page into another JSP page. Let's say that I have `master.jsp` that is including `slave.jsp`. As `slave.jsp` has its own `<head>` section for dealing with JavaScript and CSS, is there a way or maybe another method to merge the `master`and `slave` HEADs section into a single one? Also the same should done for the BODYs section. I have been using sitemesh recently but I think is quite impractical to setup a template for each page.

Original source