我应该如何在jsp文件中包含其他jsp文件?为什么?

时间:2014-07-14 16:46:30

标签: java jsp

所以似乎有几种方法可以在jsp文件中包含jsp文件,例如:

<%@ include file="header.jsp" %>
<jsp:include page="header.jsp" />
<c:import url="header.jsp" />
<tagfiles:tagfile />

那么我应该使用哪一个?为什么?它们带来了哪些优点/缺点?

2 个答案:

答案 0 :(得分:2)

include指令生成包含页面的副本,并在翻译期间将其复制到JSP页面(“包含页面”)。这称为static include(或翻译时包含),并使用以下语法:

<%@ include file="/jsp/userinfopage.jsp" %>

动态包含

有两种选择

“标准操作:JSP标记”中描述的jsp:include标记在执行期间动态地包括来自包含页面的输出中的包含页面的输出。这称为dynamic include(或运行时包含),并使用以下语法:

<jsp:include page="/jsp/userinfopage.jsp" flush="true" />
<c:import url="header.jsp" />

jsp:include不同,c:import操作提供了一种访问可通过URL指定的资源的机制,从而允许页面作者访问驻留在Web应用程序之外的资源。另一方面,它缺乏冲洗响应的能力。最后,c:impor t相对更多heavyweight,因此在寻求轻量级解决方案时不合适。

tagfiles基本上是模板,它们像通用的一样,可以渲染一些常见的视图,但在内部它们自己会使用html标签。但是在包含jsp页面时没有太大用处。

答案 1 :(得分:0)

在我的项目中,我使用了以下方法

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

我用它来加载特定的div元素而不是刷新整个页面。 这可以通过使用JQuery的加载方法来完成。

包含JSP文件允许我们在很多地方重用模板。只需在JSP文件中编写模板代码,并在需要的地方使用它。

JSP页面指令在转换时工作,而标准操作在运行时工作。

您可以在服务器端调用函数的标记文件。您还可以使用标记文件来创建模板。