将JSP页面包含到另一个JSP页面中,如何避免多个HEAD/BODY部分?
-
12-09-2019 - |
题
我想将一个 JSP 页面包含到另一个 JSP 页面中。假设我有 master.jsp
那包括 slave.jsp
.
作为 slave.jsp
有它自己的 <head>
处理 JavaScript 和 CSS 的部分,有没有一种方法或另一种方法来合并 master
和 slave
头s 部分变成一个单独的部分?也应该为 身体s 部分。
我一直在使用 站点网格 最近,但我认为为每个页面设置一个模板是相当不切实际的。
解决方案
我去该溶液通过使包括页面时的参数强>
在的 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
份重复。
其他提示
的sitemesh之外,你几乎出于运气。但是,如果你认为每页的设置是不切实际的我会重新考虑你的设计。您的应用程序将多少页?
您还可以扩展条件选项,并进行 meta.jsp
(例如),其中包含 Map
对于每个 head 元素 - 元标记、css href、脚本 href,并使用 jsp 的名称作为该 Map 中的键。然后你打电话 request.getRequestURI()
, ,并显示您在地图中该键下放置的任何内容。这不是一个非常漂亮的解决方案,但是有效。
不隶属于 StackOverflow