jspjakarta-eejspinclude

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


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 masterand 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.


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.