在导航 header、JSP 中突出显示选定的选项卡

Highlighting selected tab in nav header, JSP

第一次使用 JSP 构建网络应用程序,并尝试进行导航 header 以跨越我的所有页面,并突出显示当前页面。

我的理解是,在我的页面之间共享这样的 header 的方法是在我的每个 JSP 文件的顶部使用 JSP include 标记来包含一个像 header.jsp 这样的文件,其中包含我的 header 标记。

但是我不确定如何将条件样式应用到 header,以便每个 URL 只突出显示活动选项卡。我知道如何在 JavaScript 中完成此操作,但我的直觉是,在响应之前完成此操作会更清晰。

我的假设是否与基础相去甚远?

如果不是,JSP 实现有条件地将样式应用于 html 元素的目标的方法是什么?

感谢您提供任何信息!

忘记包含..更好的是创建一个 html 标签。只需为标签创建一个 jsp 文件,将其命名为 header.jsp 并设计您的菜单选项卡:

<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
<%@ taglib prefix="sp" uri="http://www.springframework.org/tags"%>
<%@ attribute name="selectedTab" required="true" rtexprvalue="true" type="java.lang.String"%>

<ul>
<li <c:if test="${selectedTab eq 'tab1'}">class="selectedClass"</c:if>>Tab 1 </li>
<li <c:if test="${selectedTab eq 'tab2'}">class="selectedClass"</c:if>>Tab 2 </li>
</ul>

然后在您的所有页面中使用:

<!DOCTYPE html>
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<%@ taglib prefix="h" tagdir="/WEB-INF/tags/html"%>

<h:header selectedTab="${selectedTab}" />

假设您的标签位于 /WEB-INF/tags/html 文件夹中。