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

2023-12-15

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


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

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

或通过使用<jsp:include>标准动作是这样的——

<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> or <body>,那么你最终会得到两个<html>和两个<body>最终渲染页面中的元素,这将是无效的。

欲了解更多信息,您可以查看here and here.

Edit

还有第三种方法来包含页面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 tag -

<c:import url="/path/to/yourfile.jsp">
    <c:param name="myContextSensitiveText" value="Context Sensitive!!" />
</c:import>

并以同样的方式访问它 -

${param.myContextSensitiveText} - Context Insensitive Text!!
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

我可以将自己的jsp页面导入到另一个jsp页面中吗? 的相关文章

随机推荐

  • Unity 5 中的 UnityScript“通用函数”

    在遵循其网站上的 Unity3D 教程时 http unity3d com learn tutorials projects roll a ball moving the player 我遇到过 通用函数 http docs unity3d
  • 配置 IntelliJ IDEA 以使用 JUnit 进行单元测试

    今天早上我决定通过试用版尝试一下 IntelliJ 并安装了 JUnit 插件 我创建了一个新的 Java 项目 我想为其编写一个测试用例 如何将 junit jar 文件添加到我的项目中 我实际上想将它添加到每个 java 项目中 现在和
  • Slim 框架:不允许使用方法 不允许使用方法。必须是以下之一:POST

    我正在 PHP 中设置 REST 服务器 并希望允许客户端使用具有不同方法的端点 例如 GET POST PUT DELETE 等 但是 当我尝试添加 POST 方法的函数时 出现了一个问题 如果我尝试通过 Postman 使用 POST
  • Xgboost 随机种子设置不能确保再现能力

    尽管设定了一个值random state and or seed参数 性能不可重现XgboostSklearn API 包装器 这是代码 from xgboost sklearn import XGBClassifier from skle
  • QWidget不绘制背景色

    我正在使用 PySide 1 2 1 和 Python 2 7 我需要一个小部件来绘制彩色背景 在 Qt Designer 中 我创建了一个简单的窗口 其中包含一个标签 一个包含三个其他项目的小部件和另一个标签 对于包含按钮 单选按钮和复选
  • 如何使 1 + 1 = 2 而不是 1 + 1 = 11 [重复]

    这个问题在这里已经有答案了 我试图以数学方式添加数字 但它不断添加后面的数字 它获取 id 编号 begen 然后获取另一个 div 内的编号 kacbegen var begen this attr id var kacbegen mat
  • 通过 CSS 选择器选择两个已知元素之间的所有元素

    我有两个已定义 id 的元素 它们之间有任何 html 例如 div Hello div div Example div hr a href Example a div World div 是否有 CSS 选择器可以选择 d1 和 d2 之
  • HTTP 状态 500 - Servlet appServlet 的 Servlet.init() 引发异常

    我想尝试一个简单的程序 但出现以下错误 我正在使用 Eclipse Kelper 和 Tomcat 7 0 尝试了很多事情 但没有什么对我有用 HTTP Status 500 Servlet init for servlet appServ
  • Firebase 安全规则阻止写入 Firebase

    注 此问题已标记 polymer 因为 Polymer 库用于生成 Javascript 这个问题是关于处理 Firebase 安全性的两个不同但相关的问题 在尝试让 Firebase 安全规则发挥作用时 问题 1 和问题 2 似乎提出了相
  • Javascript 通过匹配字符串对数组进行排序

    我有一个包含地理位置代码结果的数组 我想按与我搜索过的术语最接近的匹配项对其进行排序 例子 搜索 Pizza Array Pizza Uno Pizzeria Uno Burgers and Pizzeria Cino Pizzeria 排
  • 如何绕过 Swagger-UI 的身份验证?

    如何从浏览器绕过 Swagger UI 的令牌身份验证 我可以通过 Postman 向 Swagger UI 发出请求 当我从浏览器发出请求时 我收到错误 因为它请求令牌 http localhost 8080 swagger ui ind
  • 如何使用所需的 BSTR* 参数正确调用 IDispatch::Invoke

    有很多关于如何使用 BSTR 参数调用 IDispatch Invoke 的示例 我将此与许多其他 SomeType 参数一起使用 但无论我尝试什么 我要么得到类型不匹配的HRESULT E OUTOFMEMORY 要么得到访问冲突 在我看
  • 为什么我不能简单地将安装的 Perl 模块复制到其他机器上?

    我对 Perl 很陌生 但对动态语言还不太熟悉 我对模块的管理如此不直接感到有点惊讶 Sure cpan X理论上确实有效 但我正在从三台不同的机器和操作系统上处理同一个项目 在工作中 在家里 在外部环境中进行测试 在工作中 Windows
  • 使用内容值的更新方法

    Helper public boolean mMessagesSent String ID int Data SQLiteDatabase db this getWritableDatabase ContentValues contentV
  • 调用非对象上的成员函数 num_rows()

    我正在使用 CodeIgniter 并且我想从数据库中的表中获取一些数据 在我的模型中 我有这个功能 public function fetch cours limit start element id element this gt db
  • 使用 Python 请求在请求之间设置新的 cookie

    我现在正在这样做 但在最后一行失败了TypeError expected string or buffer import requests from urllib parse import urlparse url some url s r
  • Rake 无法迁移

    C Users MEGHA bbbb gt rake db migrate rake aborted SyntaxError C Users MEGHA bbbb db migrate 20140402130040 create comme
  • Python zip 单个列表元素

    我有这个 t 1 2 3 4 5 6 11 22 33 44 55 66 并想要得到这个 1 4 11 44 2 5 22 55 3 6 33 66 如何以Pythonic方式做到这一点 使用星号 它可以解压参数列表 gt gt gt zi
  • 创建表时出错

    在 MySQL 终端上粘贴以下 MySQL 命令后 出现以下错误 此代码是我从项目的生产环境中获取的 我想根据生产环境的数据库更新本地数据库 mysql gt CREATE TABLE cityguide pointofinterest g
  • 我可以将自己的jsp页面导入到另一个jsp页面中吗?

    我已经使用 netbeans 准备了一个静态 html 页面 我可以将该页面导入到另一个页面中 以便不再重新编写代码 然后进行相应的更改吗 您可以使用以下方法将 JSP 页面合并到另一个页面中 include像这样的指令 或通过使用