首页 > 解决方案 > Spring Boot MVC 在另一个 JSP 文件中包含 JSP 文件

问题描述

我有 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 项目中使用??

标签: javaspring-mvcspring-bootjsp

解决方案


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

因此,请尝试通过帮助查找要包含的 jsp 页面来使用类似下面的内容。

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

或者

<jsp:include page="../sidemenu.jsp"></jsp:include>//如果是上一级目录

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


推荐阅读