我目前有一个名为菜单容器的Jsp,它加载一个应该出现在我的每个页面上的基本菜单,但是每个页面都会向该菜单添加选项,这些选项位于特定的位置,所以我想知道我如何从另一个将内容发送到菜单容器(这是一个 Jsp),这里是菜单容器:
<ul id="menu">
<!-- Modificar las authorities segun la aplicacion -->
<div class="navbar navbar-default menu">
<div class="navbar-header" >
<button type="button" class="navbar-toggle collapsed"
data-toggle="collapse" data-target="#menu-colapse" aria-
expanded="false"
aria-controls="navbar">
<span class="sr-only">Menú</span> <span class="icon-bar">
</span>
<span class="icon-bar"></span> <span class="icon-bar"></span>
</button>
</div>
<!-- Menu colapse -->
<div id="menu-colapse" class="navbar-collapse collapse">
<!-- Menu usuario - para opciones de control del usuario-->
<ul class="nav navbar-nav navbar-right">
<li class="dropdown user-options">
<a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-haspopup="true" aria-expanded="false">
<i class="fa fa-cog"></i>
<!--[if IE 7]>
Opciones <span class="caret"></span>
<![endif]-->
</a>
<!-- En este dropdown van las opciones que se necesiten en la aplicacion -->
<ul class="dropdown-menu">
<!-- Nombre del usuario, recuperado por spring -->
<li>
<a href="#" class="a-no-link">
<!--[if !IE 7]><!-->
<i class="fa fa-user fa-padding-6 fix-right-menu" aria-hidden="true"></i>
<!--<![endif]-->
<sec:authentication property="principal" />
</a>
</li>
<!-- Logout -->
<li>
<div class="form-inline" style="color: white !important; height: 23px;">
<!--[if !IE 7]><!-->
<i class="fa fa-sign-out fa-padding-6" aria-hidden="true" style="margin-left: 16px;"></i>
<!--<![endif]-->
<a href="SalirAplicacion" style="color: white !important;"><spring:message code="menuPpal.salir"/></a>
</div>
</li>
</ul>
</li>
</ul>
<ul class="nav navbar-nav navbar-right">
<li class="dropdown user-options">
<a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-haspopup="true" aria-expanded="false">
<i class="fa fa-language"></i>
</a>
<ul class="dropdown-menu">
<li><a class="a-link" href="configuracionInicio?idioma=en&pagina=inicio" title="English">English</a></li>
<li><a class="a-link" href="configuracionInicio?idioma=es&pagina=inicio" title="Español">Español</a></li>
<li><a class="a-link" href="configuracionInicio?idioma=fr&pagina=inicio" title="Français">Français</a></li>
</ul>
</li>
</ul>
<!-- /Menu usuario -->
<ul class="nav navbar-nav navbar-right" aria-expanded="false" id="main-menu">
//This is the place for the Li Items
//One or more items to add
</ul>
现在调用 Jsp 的内容如下:
<jsp:include page="comun/menu-container.jsp" />
但是因为我必须从调用项目的jsp(它从中调用,因为它们当然是相互区分的)发送它,但我不知道该怎么做,假设我把它们在一个新的 Jsp 中,我调用它,然后如何将它传递到容器?您如何接收它?
感谢您抽出宝贵的时间,欢迎任何帮助,问候!
Pdta:我想避免的是必须让 muuuchas 类菜单只改变它们添加的内容,因为这让我的做法非常糟糕。
最佳答案
您可以通过调用 JSP 将额外的菜单项作为参数传递。
menu-container.jsp
<ul id="main-menu">
${param.menuItems}
</ul>
调用_jsp.jsp
<!doctype html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Invoking JSP</title>
</head>
<body>
<jsp:include page="menu-container.jsp">
<jsp:param name="menuItems" value="<li>Special menu item 1</li><li>Special menu item 2</li>"/>
</jsp:include>
</body>
</html>
编辑:如果您想将菜单项保留在单独的jsp页面中,正如您在评论中建议的那样,您可以将jsp页面名称作为参数传递,如下所示。
menu-container.jsp
<ul id="main-menu">
<jsp:include page="${param.menuItems}"/>
</ul>
调用_jsp.jsp
<!doctype html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Invoking JSP</title>
</head>
<body>
<jsp:include page="menu-container.jsp">
<jsp:param name="menuItems" value="menuPrincipal.jsp"/>
</jsp:include>
</body>
</html>
关于java - 动态发送 JSP 并将其包含在另一个 JSP 中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45808625/