使用 JSTL 创建带有导航链接的菜单

发布于 2024-11-05 10:31:37 字数 137 浏览 4 评论 0原文

是否有使用 JSTL 创建带有导航链接的菜单的库或最佳实践方法?

我的每个页面上都有 5 个链接。我希望指向当前页面的链接被“禁用”。我可以手动完成此操作,但这一定是人们以前解决过的问题。如果有一个标签库可以处理它,但我不知道,我不会感到惊讶。

Is there a library or best-practice way of creating a menu with navigation links using JSTL?

I have 5 links that go on every page. I want the link that points to the current page to be "disabled". I can do this manually but this must be a problem that people have tackled before. I wouldn't be surprised if there is a taglib that handles it but I don't know of it.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

你与昨日 2024-11-12 10:31:38

您可以让 JSTL/EL 根据请求的 JSP 页面的 URL 有条件地生成 HTML/CSS。您可以在 EL 中通过 ${pageContext.request.servletPath} 获取它。假设您在应用程序范围内的某些 Map 中有链接:

<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 页面中的内容。将上述内容放入其自己的 menu.jsp 文件中,并按如下方式包含:

<jsp:include page="/WEB-INF/menu.jsp" />

该页面放置在 WEB-INF 文件夹中以防止直接访问。 >

You can let JSTL/EL generate HTML/CSS conditionally based on the URL of the requested JSP page. You can get it by ${pageContext.request.servletPath} in EL. Assuming that you have the links in some Map<String, String> in the application scope:

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

Or when you're just after a CSS class

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

You can use <jsp:include> to reuse content in JSP pages. Put the above in its own menu.jsp file and include it as follows:

<jsp:include page="/WEB-INF/menu.jsp" />

The page is placed in WEB-INF folder to prevent direct access.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文