JSP中Bootstrap下拉列表无法展开的问题求助
问题原因及解决方法
你的下拉列表无法显示选项,核心原因是只引入了Bootstrap的CSS文件,没有加载Bootstrap的JavaScript和Popper.js——Bootstrap 5的下拉组件依赖这两个JS文件来实现点击展开/收起的交互逻辑。
修复后的完整代码
<%@page contentType="text/html" pageEncoding="UTF-8"%> <!DOCTYPE html> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>JSP Page</title> <link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.2/dist/css/bootstrap.min.css" rel="stylesheet" integrity="sha384-T3c6CoIi6uLrA9TneNEoa7RxnatzjcDSCmG1MXxSR1GAsXEV/Dwwykc2MPK8M2HN" crossorigin="anonymous"> </head> <body class="bg-primary bg-opacity-75"> <header> <div class="row align-items-center"> <div class="col"> <img class="img-fluid m-3" src="images/logo.jpg" style="max-height: 400px; max-height:100px"/><br> </div> </div> <div class="row"> <div class="col"> <form action="SvMenu" method="GET"> <nav class="navbar navbar-expand-lg bg-body-tertiary" data-bs-theme="dark"> <div class="container-fluid justify-content-end"> <a class="navbar-brand" href="#">MENU DE OPCIONES</a> <button class="navbar-toggler" type="button" data-bs-toggle="collapse" data-bs-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 me-auto mb-2 mb-lg-0"> <li class="nav-item"> <a class="nav-link" aria-current="page" href="#">Inicio</a> </li> <li class="nav-item"> <a class="nav-link" href="#">Modulo de facturas</a> </li> <li class="nav-item"> <a class="nav-link" href="#">Modulo de clientes</a> </li> <li class="nav-item dropdown"> <a class="nav-link dropdown-toggle" href="#" role="button" data-bs-toggle="dropdown" aria-expanded="false"> Dropdown </a> <ul class="dropdown-menu"> <li><a class="dropdown-item" href="#">Action</a></li> <li><a class="dropdown-item" href="#">Another action</a></li> <li><a class="dropdown-item" href="#">Something else here</a></li> </ul> </li> </ul> </div> </div> </nav> </form> </div> </div> </header> <!-- 新增:引入Bootstrap依赖的JS文件 --> <script src="https://cdn.jsdelivr.net/npm/@popperjs/core@2.11.8/dist/umd/popper.min.js" integrity="sha384-I7E8VVD/ismYTF4hNIPjVp/Zjvgyol6VFvRkX/vR+Vc4jQkC+hVqc2pM8ODewa9r" crossorigin="anonymous"></script> <script src="https://cdn.jsdelivr.net/npm/bootstrap@5.3.2/dist/js/bootstrap.min.js" integrity="sha384-BBtl+eGJRgqQAUMxJ7pMwbEyER4l1g+O15P+16Ep7Q9Q+zqX6gSbd85u4mG4QzX+" crossorigin="anonymous"></script> </body> </html>
关键说明
- Bootstrap 5的所有交互组件(下拉、模态框、折叠等)都需要依赖Popper.js处理定位,以及Bootstrap自身JS实现交互逻辑。
- 必须按照
Popper.js → Bootstrap JS的顺序引入,否则会出现功能异常。
内容的提问来源于stack exchange,提问作者FabianRosero18
相关产品推荐
相关产品推荐

