我想将一个JSP页面包含到另一个JSP页面中。假设我有master.jsp包括slave.jsp。
master.jsp
slave.jsp
正如slave.jsp有其自己的<head>用于处理JavaScript和CSS的部分一样,是否有一种方法或另一种方法可以将masterand slave HEAD 的部分合并为一个?对 BODY 的部分也应该这样做。
<head>
master
slave
我最近一直在使用 sitemesh, 但是我认为为每个页面设置模板是不切实际的。
我通过在包含页面时传递 参数 来寻求解决方案。
在 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>
然后在 slave.jsp 中读取参数,并呈现页面的自定义部分。
<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>
不太好看但是可以工作。这样,我就可以删除HEAD和BODY部分的重复项。
HEAD
BODY