【问题标题】:How to combine different jsp pages into one without ajax如何在没有ajax的情况下将不同的jsp页面合并为一个
【发布时间】:2017-12-03 19:55:59
【问题描述】:

我正在开发一个网站,其中包含共享一些共同部分的不同页面,例如菜单、页眉和页脚。

所以我想做的就是只编写一次这些通用组件并将它们组合到一个页面中。

到目前为止,我正在做一些我确信这不是最好的方法:我正在生成没有页眉、菜单和页脚的 jsp 文件(只有一些空白的 div托管这些组件),一旦浏览器加载页面,我就会使用 ajax 检索每个共享组件。但是这样做并没有那么优化,因为它迫使浏览器运行多个 HTTP 请求只是为了加载一个页面......

你知道什么是最好的方法吗?就像一种将不同的jsp页面组合成一个页面的方法(在服务器端,避免所有那些ajax调用)。我正在考虑帮助我构建它们的所有页面使用的某种骨架......

我真的希望自己说清楚

非常感谢您的宝贵时间,您/我们是有史以来最好的社区!!!

【问题讨论】:

    标签: java jsp web


    【解决方案1】:

    您可以使用一个主 jsp 文件并将页面的不同部分分隔在单独的 jsp 文件中,并且您可以将这些部分包含在您的主 jsp 文件中(这只是一个示例,但您可能会为如何拆分而疯狂页面)。

    main.jsp

    <%@ include file="header.jsp" %>
    
    <%@ include file="body.jsp" %>
    
    <%@ include file="footer.jsp" %>
    

    而且您不再需要 Ajax 调用。

    【讨论】:

      【解决方案2】:

      在每个 JSP 文件中,像这样包含页眉、菜单和页脚,

      <%@ include file="header.jsp" %>
      <%@ include file="menu.jsp" %>
      <!--
      Your JSP page content
      -->
      <%@ include file="footer.jsp" %>
      

      这样,如果您想更改页眉/菜单/页脚中的任何内容,它将在一个地方。

      【讨论】:

        【解决方案3】:

        我也找到了这个解决方案:

        <jsp:include page="header.jsp"/>
        

        但是您必须注意,因为这两种解决方案具有不同的行为。

        下面一个

        <%@ include file="header.jsp" %>
        

        将命名文件的内容注入到包含该标记的 JSP 中,就好像它被复制和粘贴一样。这是在解析包含文件的内容之前完成的。

        第二个行为不同

        <jsp:include page="header.jsp"/>
        

        渲染指定页面的结果被注入到包含JSP的标记点处。这实际上是通过将请求的页面作为单独的呈现请求提交到同一个容器并获取结果而不是文件的内容来完成的。

        要了解更多关于它的信息read this,这实际上是这些信息的来源

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2019-08-20
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2013-12-29
          • 2020-01-23
          相关资源
          最近更新 更多