代码之家  ›  专栏  ›  技术社区  ›  jaxonjma

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

  •  2
  • jaxonjma  · 技术社区  · 7 年前

    我目前有一个名为“菜单容器”的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" />
    

    Pdta:我想要避免的是必须有muuuchas类菜单,这些菜单只会更改它们添加的内容,因为这让我的练习非常糟糕。

    1 回复  |  直到 7 年前
        1
  •  2
  •   Chathura Buddhika    7 年前

    菜单容器。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页面名称作为参数,如下所示。

    <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>