JSP 페이지를 다른 JSP 페이지에 포함시키는 경우 여러 HEAD/BODY 섹션을 피하는 방법은 무엇입니까?
-
12-09-2019 - |
문제
JSP 페이지를 다른 JSP 페이지에 포함시키고 싶습니다.내가 가지고 있다고 가정 해 봅시다 master.jsp
포함하는 것입니다 slave.jsp
.
처럼 slave.jsp
자신의 것이있다 <head>
JavaScript와 CSS를 다루는 섹션을 참조하세요. master
그리고 slave
머리섹션을 하나로 쪼개서?또한 동일한 작업을 수행해야 합니다. 몸섹션.
나는 사용해왔다 사이트메시 최근에는 각 페이지에 템플릿을 설정하는 것이 매우 비현실적이라고 생각합니다.
해결책
나는이 솔루션을 전달 하여이 솔루션을 갔다 매개 변수 페이지를 포함시킬 때.
안에 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
각 헤드 요소(메타 태그, CSS href, 스크립트 href)에 대해 jsp 이름을 해당 맵의 키로 사용합니다.그럼 네가 전화해 request.getRequestURI()
, 을 클릭하고 해당 키 아래에 지도에 넣은 내용을 표시합니다.매우 아름다운 솔루션은 아니지만 작동 중입니다.
제휴하지 않습니다 StackOverflow