Java 在另一个JSP中动态发送并包含JSP

Java 在另一个JSP中动态发送并包含JSP,java,html,jsp,include,Java,Html,Jsp,Include,我目前有一个名为“菜单容器”的Jsp,它加载一个基本菜单,该菜单应该出现在我的每个页面上,但每个页面都会向该菜单添加选项,这些选项位于特定位置,因此我想知道如何从另一个页面将内容发送到菜单容器(这是一个Jsp),以下是菜单容器: <ul id="menu"> <!-- Modificar las authorities segun la aplicacion --> <div class="navbar navbar-default menu"> &l

我目前有一个名为“菜单容器”的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:我想要避免的是必须有muuucas类菜单,它们只改变它们添加的内容,因为这使我的做法非常糟糕。

您可以通过调用JSP将额外的菜单项作为参数传递

菜单容器.jsp

<ul id="main-menu">
    ${param.menuItems}
</ul>
<!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>
<ul id="main-menu">
    <jsp:include page="${param.menuItems}"/>
</ul>
<!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>
    ${param.menuItems}
调用_jsp.jsp

<ul id="main-menu">
    ${param.menuItems}
</ul>
<!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>
<ul id="main-menu">
    <jsp:include page="${param.menuItems}"/>
</ul>
<!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>

调用JSP


编辑:如果您希望将菜单项保留在一个单独的jsp页面中,正如您在注释中所建议的那样,您只需将jsp页面名称作为参数传递,如下所示

菜单容器.jsp

<ul id="main-menu">
    ${param.menuItems}
</ul>
<!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>
<ul id="main-menu">
    <jsp:include page="${param.menuItems}"/>
</ul>
<!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>
调用_jsp.jsp

<ul id="main-menu">
    ${param.menuItems}
</ul>
<!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>
<ul id="main-menu">
    <jsp:include page="${param.menuItems}"/>
</ul>
<!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>

调用JSP

你的问题对我来说有点不清楚。检查我发布的答案。如果这不是您想要做的,请让我知道,我将编辑答案。我如何做的可能重复如下:@jaxonjma您不能这样做,但您可以传递JSP页面名称并将其包含在目标JSP页面中。检查编辑后的答案。如果你的问题已经解决,请接受答案。谢谢@Chathura Buddhika,这太完美了@jaxonjma传递另一个参数来标识它是原始html还是jsp页面名。在menu-container.jsp页面中,您可以检查该参数,并使用if/else@Chathura Buddhika插入正确的代码。您能看看这个吗?