在JSP导航标题中突出显示选定的选项卡

时间:2018-07-15 19:20:40

标签: jsp jsp-tags jspinclude

首次使用JSP构建Web应用程序,并尝试制作一个导航标题以覆盖我的所有页面,并突出显示当前页面。

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

但是,我不确定如何将条件样式应用于标题,以便每个URL仅突出显示活动标签。我有一个如何在JavaScript中完成此操作的想法,但是我的直觉是在响应之前完成此操作会比较干净。

我的假设是否到目前为止还差得远?

如果没有,那么JSP将如何实现有条件地将样式应用于html元素的目标?

感谢您提供任何信息!

1 个答案:

答案 0 :(得分:0)

忘了包含..更好的是创建一个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文件夹中。