如何将不同的jsp页面组合成一个没有ajax的页面

时间:2017-12-02 11:59:33

标签: java jsp web

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

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

到目前为止,我做了一些事情,我确信这不是最好的方法:我生成没有标题,菜单和页脚的jsp文件(只是有一些空白的div来承载这些组件),一旦浏览器加载了页面,我就用每个共享组件的ajax检索。但这样做不是那么优化,因为它强制浏览器只运行几个HTTP请求来加载一个页面......

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

我真的希望能让自己明白

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

3 个答案:

答案 0 :(得分:2)

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

main.jsp中

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

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

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

您不再需要Ajax调用。

答案 1 :(得分:1)

在每个JSP文件中,包括标题,菜单和页脚,

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

这样,如果你想改变标题/菜单/页脚中的任何内容,它将在一个地方。

答案 2 :(得分:0)

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

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

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

以下是

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

将指定文件的内容注入包含标记的JSP中,就像复制并粘贴它一样。这是在解析包含文件的内容之前完成的。

第二个表现不同

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

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

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