gpt4 book ai didi

jsp - 我可以将自己的jsp页面导入到另一个jsp页面中吗?

转载 作者:行者123 更新时间:2023-12-01 07:15:45 24 4
gpt4 key购买 nike

我已经使用 netbeans 准备了一个静态 html 页面。
我可以将该页面导入另一个页面,以免再次重新编写代码,然后进行相应的更改。

最佳答案

您可以使用 include 将一个 JSP 页面合并到另一个页面中。像这样的指令 -

<%@ include file="/path/to/yourfile.jsp" %>

或使用 <jsp:include>像这样的标准 Action ——
<jsp:include page="/path/to/yourfile.jsp"/>

从以上两种方式来看,第一种会导致 yourfile.jsp的内容在页面翻译时包含。也就是说,当页面被翻译成一个成熟的 servlet 类时, yourfile.jsp 的内容。将包含在 servlet 中。因此,这种包含只会发生一次,在页面翻译时发生,仅在您的应用程序启动后的第一个用户请求时发生。

如果您使用第二种方法,那么在每个用户请求来自 yourfile.jsp 的响应时将在运行时包含,而不是在页面翻译时包含。

当您使用 include指令,您基本上将目标文件的内容复制并粘贴到主文件中。如果目标文件包含任何生成动态内容的标签或 EL,那么这些也将成为主文件的一部分,它们将相应地执行并生成动态内容。没有问题。

但是这种方法有一些局限性。例如,使用 include 包含的页面无法更改响应状态代码或设置标题,这意味着您无法调用 addCookies()或来自 yourfile.jsp 的其他一些标题设置方法.如果你这样做,你不会得到错误,你只是不会得到你所希望的。如果您使用 <jsp:include>那么所有这些都可以在包含的页面中完成,它们将相应地工作。

这两种方法之间存在另一个重要区别。假设您想要包含一个文件,该文件具有一些上下文相关的文本,这些文本会根据包含它们的页面而变化。与 include方法,您将无法优雅地完成此操作。但随着 <jsp:include>方法,你可以这样做 -
<jsp:include page="/path/to/yourfile.jsp">
<jsp:param name="myContextSensitiveText" value="Context Sensitive!!" />
</jsp:include>

这意味着您正在为 yourfile.jsp 指定一个新的请求参数,然后您可以从该文件访问并相应地呈现它 -
${param.myContextSensitiveText} - Context Insensitive Text!!

include方法,您将无法完成此操作。

您应该使用哪一个完全取决于您的设计选择。

您应该记住另一件事——这两种方法都会将目标文件的内容包含到主文件中,尽管方式不同。因此,如果它们都包含像 <html> 这样的 html 元素或 <body> ,那么你最终会得到两个 <html>和两个 <body>最终渲染页面中的元素,这将是无效的。

更多信息,您可以查看 herehere .

编辑

还有第三种方法可以使用 JSTL 包含页面.您可以使用 import 用于此目的的 JSTL 标记 -
<%-- You need to declare this at the top of your jsp page--%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
...............
...............

<c:import url="/path/to/yourfile.jsp" />

这种方法的工作方式与 <jsp:include> 完全相同。 ,除了它更强大一点。您可以包含应用程序目录之外的页面中的内容,甚至也可以包含在容器之外!举个例子 -
<c:import url="http://www.google.com" />

这一行将包含 google 主页的 HTML 内容。

如果您需要将参数传递给包含的页面,例如 <jsp:include> ,那么您可以使用 param 标签 -
<c:import url="/path/to/yourfile.jsp">
<c:param name="myContextSensitiveText" value="Context Sensitive!!" />
</c:import>

并以同样的方式访问它 -
${param.myContextSensitiveText} - Context Insensitive Text!!

关于jsp - 我可以将自己的jsp页面导入到另一个jsp页面中吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7220275/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com