JSP中与PHP include()函数相对应的是什么?

8

我该如何使用JSP将一个HTML文件包含到另一个HTML文件中?

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

你试过了吗?它是怎么失败的? - BalusC
2个回答

9
您有几个选项。第一个是<jsp:include>。第二个是<c:import>c:标签是JSTL,即JavaServer Pages标准标签库

它们的区别是什么?主要是<jsp:include>将另一个JAR中相对于当前页面的JSP页面的内容插入到该页面中,而<c:import>可以读取绝对或相对URL并在页面上显示这些内容,检索Reader或将内容存储在变量中。

它们的语法类似于XML:

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

或者

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

注意:两者都可以接受参数。


1
看文档,jsp:include似乎可以实现OP所要求的功能;但是它似乎并不完全类似于PHP的include()。特别地,被包含的文件不共享相同的全局范围;被包含文件创建的函数/类在包含脚本中不可用等等。而是执行被包含的脚本,并返回输出。 - Frank Farmer
你的投票在哪里,弗兰克? 我进行了第一次点赞,但我没有看到第二次 :) - BalusC
谢谢,那么我上面的例子是正确的语法吗? - Dirk Diggler
@devils-avacado:是的。 @cletus' 编辑:jsp:includec:import之间的实际区别在于前者包含源代码,而后者包含输出结果(除了可以从外部URL获取它)。 - BalusC
@cletus 或 @BalucC,我可以使用任一方法包含 .html、.shtml、.js 或 .css 吗?请原谅我的无知,我对 JSP 完全是新手。 - Dirk Diggler
1
所包含的文档是任意的,因此它可以是CSS、Javascript或HTML,也就是通常在HTML文档中包含的内容。 - cletus

1

对于希望在JSP中使用与PHP include()或<!--#include file="header.jsp"-->相同的行为,并共享全局范围的人,请使用以下命令:

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

参考文献:这里

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接