突出显示活动菜单项,根据当前页面使用jsp/jstl,无javascript

突出显示活动菜单项,根据当前页面使用jsp/jstl,无javascript,jsp,spring-boot,jsp-fragments,Jsp,Spring Boot,Jsp Fragments,我目前正在一个使用 和。我喜欢在导航栏中突出显示活动选项卡,其中使用了一个活动类。根据当前页面,我找到了许多方法()来获得结果,但没有一种方法是使用纯jstl和jsp。我提出了这个解决方案: ${pageContext.request.requestURI.endsWith('/…')?“活动”:“”} 但是它不起作用,navbar.jspf文件位于todo.jsp文件中的header.jspf中除导航中的活动选项卡外,所有功能均正常运行,感谢您的帮助 header.jspf如下所示: <

我目前正在一个使用 和。我喜欢在导航栏中突出显示活动选项卡,其中使用了一个活动类。根据当前页面,我找到了许多方法()来获得结果,但没有一种方法是使用纯jstl和jsp。我提出了这个解决方案:

${pageContext.request.requestURI.endsWith('/…')?“活动”:“”}

但是它不起作用,navbar.jspf文件位于todo.jsp文件中的header.jspf中除导航中的活动选项卡外,所有功能均正常运行,感谢您的帮助

header.jspf如下所示:

<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<%@ taglib uri="http://java.sun.com/jsp/jstl/fmt" prefix="fmt" %>
<%@ taglib uri="http://www.springframework.org/tags/form" prefix="form"%>

<!doctype html>
<html lang="en">
<head>
  <meta charset="UTF-8" />
  <title>Add Todo</title>
  <link rel="stylesheet"href="webjars/bootstrap/4.0.0/css/bootstrap.min.css"/>
</head>
<body>
<nav class="navbar navbar-expand-lg navbar-light bg-light border mb-5">
  <a class="navbar-brand p-2" href="#">Navbar</a>

  <button class="navbar-toggler m-2" type="button" data-
      toggle="collapse" data-target="#navbarSupportedContent" aria-
      controls="navbarSupportedContent" aria-expanded="false" aria-
      label="Toggle navigation">
      <span class="navbar-toggler-icon"></span>
  </button>

  <div class="collapse navbar-collapse" id="navbarSupportedContent">
    <ul class="navbar-nav mr-auto">
      <li class="nav-item 
        ${pageContext.request.requestURI.endsWith('/') ? 'active' : 
        ''}">
        <a class="nav-link p-3 " href="/login">Home</span></a>
      </li>
      <li class="nav-item 
          ${pageContext.request.requestURI.endsWith('/list-todos') ? 
          'active' : 
          ''}">
        <a class="nav-link p-3 " href="/list-todos">Todos</a>
      </li>
   </div>
</nav>
  <%@ include file="fragments/header.jspf" %>
  <%@ include file="fragments/navigation.jspf" %>

  <div class="container">
    <h2>Add Todo Page for ${name}</h2>
    ...........
  </div>
@Controller
@SessionAttributes("name")
public class LoginController {

  @Autowired
  LoginService service;

  @RequestMapping(value="/login", method = RequestMethod.GET)
  public String showLoginPage(ModelMap model){
    model.addAttribute("activeLogin", "active");
    return "login";
  }
}
<nav class="navbar navbar-expand-lg navbar-light border-bottom mb-5">
  <a class="navbar-brand p-2" href="#">Navbar</a>
  <button class="navbar-toggler m-2" type="button" data-
   toggle="collapse" data-target="#navbarSupportedContent" aria-
   controls="navbarSupportedContent" aria-expanded="false" aria-
   label="Toggle navigation">
   <span class="navbar-toggler-icon"></span>
  </button>

  <div class="collapse navbar-collapse" id="navbarSupportedContent">
   <ul class="navbar-nav mr-auto">
     <li class="nav-item ${activeLogin}">
       <a class="nav-link p-3 " href="/login">Home</span></a>
     </li>
     .........
   </ul>
  </div>
</nav>

添加待办事项
navigation.jspf如下所示:

<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<%@ taglib uri="http://java.sun.com/jsp/jstl/fmt" prefix="fmt" %>
<%@ taglib uri="http://www.springframework.org/tags/form" prefix="form"%>

<!doctype html>
<html lang="en">
<head>
  <meta charset="UTF-8" />
  <title>Add Todo</title>
  <link rel="stylesheet"href="webjars/bootstrap/4.0.0/css/bootstrap.min.css"/>
</head>
<body>
<nav class="navbar navbar-expand-lg navbar-light bg-light border mb-5">
  <a class="navbar-brand p-2" href="#">Navbar</a>

  <button class="navbar-toggler m-2" type="button" data-
      toggle="collapse" data-target="#navbarSupportedContent" aria-
      controls="navbarSupportedContent" aria-expanded="false" aria-
      label="Toggle navigation">
      <span class="navbar-toggler-icon"></span>
  </button>

  <div class="collapse navbar-collapse" id="navbarSupportedContent">
    <ul class="navbar-nav mr-auto">
      <li class="nav-item 
        ${pageContext.request.requestURI.endsWith('/') ? 'active' : 
        ''}">
        <a class="nav-link p-3 " href="/login">Home</span></a>
      </li>
      <li class="nav-item 
          ${pageContext.request.requestURI.endsWith('/list-todos') ? 
          'active' : 
          ''}">
        <a class="nav-link p-3 " href="/list-todos">Todos</a>
      </li>
   </div>
</nav>
  <%@ include file="fragments/header.jspf" %>
  <%@ include file="fragments/navigation.jspf" %>

  <div class="container">
    <h2>Add Todo Page for ${name}</h2>
    ...........
  </div>
@Controller
@SessionAttributes("name")
public class LoginController {

  @Autowired
  LoginService service;

  @RequestMapping(value="/login", method = RequestMethod.GET)
  public String showLoginPage(ModelMap model){
    model.addAttribute("activeLogin", "active");
    return "login";
  }
}
<nav class="navbar navbar-expand-lg navbar-light border-bottom mb-5">
  <a class="navbar-brand p-2" href="#">Navbar</a>
  <button class="navbar-toggler m-2" type="button" data-
   toggle="collapse" data-target="#navbarSupportedContent" aria-
   controls="navbarSupportedContent" aria-expanded="false" aria-
   label="Toggle navigation">
   <span class="navbar-toggler-icon"></span>
  </button>

  <div class="collapse navbar-collapse" id="navbarSupportedContent">
   <ul class="navbar-nav mr-auto">
     <li class="nav-item ${activeLogin}">
       <a class="nav-link p-3 " href="/login">Home</span></a>
     </li>
     .........
   </ul>
  </div>
</nav>

包含所有内容的todo文件如下所示:

<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<%@ taglib uri="http://java.sun.com/jsp/jstl/fmt" prefix="fmt" %>
<%@ taglib uri="http://www.springframework.org/tags/form" prefix="form"%>

<!doctype html>
<html lang="en">
<head>
  <meta charset="UTF-8" />
  <title>Add Todo</title>
  <link rel="stylesheet"href="webjars/bootstrap/4.0.0/css/bootstrap.min.css"/>
</head>
<body>
<nav class="navbar navbar-expand-lg navbar-light bg-light border mb-5">
  <a class="navbar-brand p-2" href="#">Navbar</a>

  <button class="navbar-toggler m-2" type="button" data-
      toggle="collapse" data-target="#navbarSupportedContent" aria-
      controls="navbarSupportedContent" aria-expanded="false" aria-
      label="Toggle navigation">
      <span class="navbar-toggler-icon"></span>
  </button>

  <div class="collapse navbar-collapse" id="navbarSupportedContent">
    <ul class="navbar-nav mr-auto">
      <li class="nav-item 
        ${pageContext.request.requestURI.endsWith('/') ? 'active' : 
        ''}">
        <a class="nav-link p-3 " href="/login">Home</span></a>
      </li>
      <li class="nav-item 
          ${pageContext.request.requestURI.endsWith('/list-todos') ? 
          'active' : 
          ''}">
        <a class="nav-link p-3 " href="/list-todos">Todos</a>
      </li>
   </div>
</nav>
  <%@ include file="fragments/header.jspf" %>
  <%@ include file="fragments/navigation.jspf" %>

  <div class="container">
    <h2>Add Todo Page for ${name}</h2>
    ...........
  </div>
@Controller
@SessionAttributes("name")
public class LoginController {

  @Autowired
  LoginService service;

  @RequestMapping(value="/login", method = RequestMethod.GET)
  public String showLoginPage(ModelMap model){
    model.addAttribute("activeLogin", "active");
    return "login";
  }
}
<nav class="navbar navbar-expand-lg navbar-light border-bottom mb-5">
  <a class="navbar-brand p-2" href="#">Navbar</a>
  <button class="navbar-toggler m-2" type="button" data-
   toggle="collapse" data-target="#navbarSupportedContent" aria-
   controls="navbarSupportedContent" aria-expanded="false" aria-
   label="Toggle navigation">
   <span class="navbar-toggler-icon"></span>
  </button>

  <div class="collapse navbar-collapse" id="navbarSupportedContent">
   <ul class="navbar-nav mr-auto">
     <li class="nav-item ${activeLogin}">
       <a class="nav-link p-3 " href="/login">Home</span></a>
     </li>
     .........
   </ul>
  </div>
</nav>

为${name}添加Todo页
...........

该死,就像我想的那样。可以在控制器中为特定页面定义modelAttribute。以及导航栏中的jsp变量

我的情况是这样的:

<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<%@ taglib uri="http://java.sun.com/jsp/jstl/fmt" prefix="fmt" %>
<%@ taglib uri="http://www.springframework.org/tags/form" prefix="form"%>

<!doctype html>
<html lang="en">
<head>
  <meta charset="UTF-8" />
  <title>Add Todo</title>
  <link rel="stylesheet"href="webjars/bootstrap/4.0.0/css/bootstrap.min.css"/>
</head>
<body>
<nav class="navbar navbar-expand-lg navbar-light bg-light border mb-5">
  <a class="navbar-brand p-2" href="#">Navbar</a>

  <button class="navbar-toggler m-2" type="button" data-
      toggle="collapse" data-target="#navbarSupportedContent" aria-
      controls="navbarSupportedContent" aria-expanded="false" aria-
      label="Toggle navigation">
      <span class="navbar-toggler-icon"></span>
  </button>

  <div class="collapse navbar-collapse" id="navbarSupportedContent">
    <ul class="navbar-nav mr-auto">
      <li class="nav-item 
        ${pageContext.request.requestURI.endsWith('/') ? 'active' : 
        ''}">
        <a class="nav-link p-3 " href="/login">Home</span></a>
      </li>
      <li class="nav-item 
          ${pageContext.request.requestURI.endsWith('/list-todos') ? 
          'active' : 
          ''}">
        <a class="nav-link p-3 " href="/list-todos">Todos</a>
      </li>
   </div>
</nav>
  <%@ include file="fragments/header.jspf" %>
  <%@ include file="fragments/navigation.jspf" %>

  <div class="container">
    <h2>Add Todo Page for ${name}</h2>
    ...........
  </div>
@Controller
@SessionAttributes("name")
public class LoginController {

  @Autowired
  LoginService service;

  @RequestMapping(value="/login", method = RequestMethod.GET)
  public String showLoginPage(ModelMap model){
    model.addAttribute("activeLogin", "active");
    return "login";
  }
}
<nav class="navbar navbar-expand-lg navbar-light border-bottom mb-5">
  <a class="navbar-brand p-2" href="#">Navbar</a>
  <button class="navbar-toggler m-2" type="button" data-
   toggle="collapse" data-target="#navbarSupportedContent" aria-
   controls="navbarSupportedContent" aria-expanded="false" aria-
   label="Toggle navigation">
   <span class="navbar-toggler-icon"></span>
  </button>

  <div class="collapse navbar-collapse" id="navbarSupportedContent">
   <ul class="navbar-nav mr-auto">
     <li class="nav-item ${activeLogin}">
       <a class="nav-link p-3 " href="/login">Home</span></a>
     </li>
     .........
   </ul>
  </div>
</nav>
导航栏如下所示:

<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<%@ taglib uri="http://java.sun.com/jsp/jstl/fmt" prefix="fmt" %>
<%@ taglib uri="http://www.springframework.org/tags/form" prefix="form"%>

<!doctype html>
<html lang="en">
<head>
  <meta charset="UTF-8" />
  <title>Add Todo</title>
  <link rel="stylesheet"href="webjars/bootstrap/4.0.0/css/bootstrap.min.css"/>
</head>
<body>
<nav class="navbar navbar-expand-lg navbar-light bg-light border mb-5">
  <a class="navbar-brand p-2" href="#">Navbar</a>

  <button class="navbar-toggler m-2" type="button" data-
      toggle="collapse" data-target="#navbarSupportedContent" aria-
      controls="navbarSupportedContent" aria-expanded="false" aria-
      label="Toggle navigation">
      <span class="navbar-toggler-icon"></span>
  </button>

  <div class="collapse navbar-collapse" id="navbarSupportedContent">
    <ul class="navbar-nav mr-auto">
      <li class="nav-item 
        ${pageContext.request.requestURI.endsWith('/') ? 'active' : 
        ''}">
        <a class="nav-link p-3 " href="/login">Home</span></a>
      </li>
      <li class="nav-item 
          ${pageContext.request.requestURI.endsWith('/list-todos') ? 
          'active' : 
          ''}">
        <a class="nav-link p-3 " href="/list-todos">Todos</a>
      </li>
   </div>
</nav>
  <%@ include file="fragments/header.jspf" %>
  <%@ include file="fragments/navigation.jspf" %>

  <div class="container">
    <h2>Add Todo Page for ${name}</h2>
    ...........
  </div>
@Controller
@SessionAttributes("name")
public class LoginController {

  @Autowired
  LoginService service;

  @RequestMapping(value="/login", method = RequestMethod.GET)
  public String showLoginPage(ModelMap model){
    model.addAttribute("activeLogin", "active");
    return "login";
  }
}
<nav class="navbar navbar-expand-lg navbar-light border-bottom mb-5">
  <a class="navbar-brand p-2" href="#">Navbar</a>
  <button class="navbar-toggler m-2" type="button" data-
   toggle="collapse" data-target="#navbarSupportedContent" aria-
   controls="navbarSupportedContent" aria-expanded="false" aria-
   label="Toggle navigation">
   <span class="navbar-toggler-icon"></span>
  </button>

  <div class="collapse navbar-collapse" id="navbarSupportedContent">
   <ul class="navbar-nav mr-auto">
     <li class="nav-item ${activeLogin}">
       <a class="nav-link p-3 " href="/login">Home</span></a>
     </li>
     .........
   </ul>
  </div>
</nav>

  • .........
试试这个:

<%@ page contentType="text/html; charset=UTF-8" pageEncoding="UTF-8" %>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<c:set var="ctx" value="${pageContext.request.contextPath}"/>
<c:set var="pagina" value="${requestScope['javax.servlet.forward.request_uri']}" />