You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何复用支持HTML插入的JSP文件作为模板批量创建页面

JSP模板复用插入自定义正文的实现方案

以下是三种不同复杂度的实现方案,可根据项目场景选择:

方案1:JSP标签文件(原生无依赖,最推荐)

JSP 2.0及以上版本原生支持标签文件功能,无需引入额外依赖即可实现模板继承,是目前最优的原生解决方案:

  • 第一步:在项目WEB-INF目录下新建tags文件夹,将你的基础模板保存为baseLayout.tag,示例内容如下:
<%@ tag language="java" pageEncoding="UTF-8" %>
<!-- 定义必填的正文片段属性 -->
<%@ attribute name="bodyContent" fragment="true" required="true" %>
<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
    <!-- 通用样式、公共meta标签统一放在这里 -->
</head>
<body>
    <!-- 公共页头区域 -->
    <header>
        站点导航、logo、登录入口等公共内容
    </header>

    <!-- 自定义正文插入位置 -->
    <main>
        <jsp:invoke fragment="bodyContent"/>
    </main>

    <!-- 公共页脚区域 -->
    <footer>
        版权信息、备案号、站点地图等公共内容
    </footer>
</body>
</html>
  • 第二步:在业务JSP文件中直接引用模板,插入自定义正文即可,示例article.jsp代码:
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<!-- 引入自定义标签目录 -->
<%@ taglib prefix="t" tagdir="/WEB-INF/tags" %>

<t:baseLayout>
    <jsp:attribute name="bodyContent">
        <!-- 这里写入当前页面专属的正文内容 -->
        <h1>文章标题</h1>
        <p>这是当前页面独有的正文内容,会自动插入到模板的正文区域</p>
    </jsp:attribute>
</t:baseLayout>

你还可以通过新增attribute标签扩展自定义参数,比如页面标题、专属CSS引入等,灵活性很高。

方案2:拆分引入公共头尾(适合简单/老旧项目)

如果你的项目是不支持标签文件的老版本JSP,可以把模板拆成头尾两个单独文件分别引入:

  • 第一步:把原模板的页头代码保存为/WEB-INF/common/header.jsp,页脚代码保存为/WEB-INF/common/footer.jsp
  • 第二步:业务JSP中分别引入头尾,中间写入正文即可:
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<!-- 引入公共页头 -->
<jsp:include page="/WEB-INF/common/header.jsp"/>

<!-- 这里写入当前页面的正文内容 -->
<h1>产品列表</h1>
<div class="product-list">
    产品卡片等业务内容
</div>

<!-- 引入公共页脚 -->
<jsp:include page="/WEB-INF/common/footer.jsp"/>

该方案实现简单,但扩展性较差,每个页面都需要手动引入两次公共文件。

方案3:布局框架(适合中大型项目)

如果项目规模较大,页面结构复杂,可以选择成熟的布局框架实现更灵活的模板管理:

  • Apache Tiles:专门针对JSP生态的布局管理框架,支持嵌套模板、多区块自定义,非常适合页面结构统一的站点使用
  • 若项目使用Spring MVC等框架,也可以考虑切换为Thymeleaf等支持布局功能的模板引擎,开发效率更高

内容的提问来源于stack exchange,提问作者Максим Ахмеров

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.06 15:18:04