【问题标题】:Spring Boot MVC Include JSP file inside another JSP FileSpring Boot MVC 在另一个 JSP 文件中包含 JSP 文件
【发布时间】:2019-05-18 10:44:23
【问题描述】:

我有 Spring MVC 和 Spring Boot,我也使用 JSP 文件作为视图。 我已经用过 JSP 和 JSTL 库了

    <dependency>
        <groupId>javax.servlet</groupId>
        <artifactId>jstl</artifactId>
    </dependency>

    <dependency>
        <groupId>org.apache.tomcat.embed</groupId>
        <artifactId>tomcat-embed-jasper</artifactId>
        <scope>provided</scope>
    </dependency>

例如,我对 JSP 和 JSTL 语法没有问题

<c:set var="heading" scope="page" value="${0}" />

 <c:forEach var="menuGroup" items="${menuGroups}">
   <c:if test="${menuGroup.headingId != heading}">
       <c:if test="${menuGroup.headingIsDisplayed == 1}">
            <li class="menu-title text-white">${menuGroup.headingTitle}</li>
    </c:if> 
    <c:set var="heading" scope="page" value="${menuGroup.headingId}" />

 </c:if>

    <li class="has_sub">
     <a href="index.html" class="waves-effect">
        <i class="ti-home"></i>
        <span> ${menuGroup.menuGroupTitle}</span>
        <span class="pull-right"><i class="mdi mdi-chevron-right"></i> 
   </span>
    </a>

    <ul class="list-unstyled">

        <c:forEach var="menu" items="${menuGroup.menus}">

            <li><a href="${menu.menuPath}">${menu.menuTitle}</a></li>
        </c:forEach>

    </ul>
  </li>


 </c:forEach>

但是当我使用 JSP 包含标签时

      <jsp:include page="sidemenu.jsp" flush="true"></jsp:include>

它不工作!,sidemenu JSP 文件中的内容不包含在页面中,并且根本没有错误消息。

是否有任何我错过的页面设置或配置? 或者标签不能在 Spring Boot MVC 项目中使用??

【问题讨论】:

    标签: java spring-mvc spring-boot jsp


    【解决方案1】:

    以上应该可以完美运行。唯一的问题可能与 sidemenu.jsp 文件位置有关。

    因此,请尝试使用以下内容,帮助查找要包含的 jsp 页面。

    <jsp:include page="/WEB-INF/JSPs/header/navigation.jsp"></jsp:include>
    

    &lt;jsp:include page="../sidemenu.jsp"&gt;&lt;/jsp:include&gt; //如果是上一级目录

    另请参阅include-jsps-file-from-another-folder

    【讨论】:

      【解决方案2】:

      首先,您需要找到sidemenu.jsp 的实际路径。
      然后你必须在包含它时使用这个路径。像这样,

      <jsp:include page="../views/jsp/sidemenu.jsp" flush="true"/>
      

      【讨论】:

        【解决方案3】:

        你为什么不使用:&lt;%@ include file=/included-file.jsp" %&gt;

        【讨论】:

        • jsp:include 在运行时包含,包含文件在页面生成之前包含。 stackoverflow.com/questions/23835653/…
        • 问题中的问题是错误的路径,实际上,两种包含的方式都很好,对吧?
        猜你喜欢
        • 1970-01-01
        • 2012-01-28
        • 2021-01-25
        • 2011-12-08
        • 1970-01-01
        • 1970-01-01
        • 2015-09-27
        • 1970-01-01
        • 2011-12-18
        相关资源
        最近更新 更多