आप जेएसटीएल/ईएल को अनुरोधित जेएसपी पेज के यूआरएल पर सशर्त रूप से HTML/CSS उत्पन्न कर सकते हैं। आप इसे ईएल में ${pageContext.request.servletPath}
द्वारा प्राप्त कर सकते हैं। यह मानते हुए कि आप आवेदन दायरे में कुछ Map<String, String>
में लिंक है:
<ul id="menu">
<c:forEach items="${menu}" var="item">
<li>
<c:choose>
<c:when test="${pageContext.request.servletPath == item.value}">
<b>${item.key}</b>
</c:when>
<c:otherwise>
<a href="${item.value}">${item.key}</a>
</c:otherwise>
</c:choose>
</li>
</c:forEach>
</ul>
या जब आप बस एक CSS वर्ग
<ul id="menu">
<c:forEach items="${menu}" var="item">
<li><a href="${item.value}" class="${pageContext.request.servletPath == item.value ? 'active' : 'none'}">${item.key}</a></li>
</c:forEach>
</ul>
के बाद कर रहे हैं आप <jsp:include>
उपयोग कर सकते हैं JSP पृष्ठों में सामग्री का पुन: उपयोग करने के लिए। अपनी ही menu.jsp
फ़ाइल में ऊपर रखो और इसे शामिल इस प्रकार है:
<jsp:include page="/WEB-INF/menu.jsp" />
पेज WEB-INF
फ़ोल्डर में रखा गया है सीधी पहुँच को रोकने के लिए।
सुंदर। क्या आपको jstl के साथ उस सूची को बनाने के लिए कोई सुझाव होगा? मैं इसे एक स्क्रिप्टलेट या नियंत्रक परत में नहीं बनाना पसंद करूंगा। –
यदि यह एप्लिकेशन है, तो मैं केवल 'ServletContextListener' का उपयोग करूंगा। 'ContextInitialized()' में, मेनू को 'event.getServletContext() द्वारा सेट और स्टोर करें। SetAttribute ("मेनू", मेनू) '। यह ईएल में सामान्य तरीके से उपलब्ध होगा। उदाहरण के लिए यह उत्तर भी देखें http://stackoverflow.com/questions/3468150/using-init-servlet/3468317#3468317 – BalusC