jsp - JSP 片段如何将其依赖项包含到父级的 head 标记中?

标签 jsp include fragment

我有一个名为 header.jsp 的 JSP 文件,如下所示。

<%@ taglib prefix="c" uri="/c" %>
<%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions" %>
<!DOCTYPE html>
<html>
<head>
...
</head>
<body>

然后我有一个看起来像这样的内容片段。

<jsp:include page="../header.jsp" />
My Page Content Here.

如果该内容片段具有某些依赖项(如 CSS 和 Javascript 包含)必须放在 head 标记内,我如何将它们包含在那里?每个片段可能有自己的一组不同的 CSS 和 Javascript 文件,我不想将我可能使用的每个可能的 CSS 和 Javascript 文件都包含在每个页面的标题中。处理这个问题的正确方法是什么?我是一家初创公司的愚蠢实习生,请原谅我的无知。先谢谢你。

最佳答案

这很简单,您可以使用 <jsp:invoke /> 执行以下操作标签而不是 <include />标签。它是 jsp 2.0 的新功能,允许您将一些片段从一个页面移到另一个页面,从而使构建模板的任务变得非常容易。可以查看一个教程here .

这是解决您问题的方法: 创建一个标记文件夹并将其放入其中。

模板.标签

<%@tag description="Main template of the page" pageEncoding="UTF-8" trimDirectiveWhitespaces="true" %>

<%@attribute name="header" fragment="true" required="false" %>
<html>
    <head>
        ...some css and javasctipt used on all the pages...
        <!-- Custom css and javascript for one page -->
        <jsp:invoke fragment="header"/>
    </head>
    <body>
        <jsp:doBody />
    </body>
</html>

通过包含标记文件夹在您的页面上使用以前的模板:

useOfTemplate.jsp

<%@page contentType="text/html" pageEncoding="UTF-8" %>

<%@taglib prefix="custom" tagdir="/WEB-INF/tags" %>

<custom:template>
    <jsp:attribute name="header">
        ...Here you can include your custom css and javascript for this page...
    </jsp:attribute>
    <jsp:body>
        ...here comes the info of the page...
    </jsp:body>
</custom:template>

关于jsp - JSP 片段如何将其依赖项包含到父级的 head 标记中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11400655/

相关文章:

html - 我应该如何构建网站以最大程度地减少对多个页面的编辑?

java - fragment 不起作用

android - 从堆栈中弹出特定 fragment 并删除其他 fragment

php - 可以拆分PHP配置文件php.ini吗?

android - 使用 onItemClick 从 DialogFragment 中的 ListView 获取数据

java - 如何在 JSP 页面中将 Int[] 数组复制或转换为 var

java - JSP - 具有大量 HTML 代码的 Scriptlet 性能

java - java中的数据库

c++ - 如何将 boost 库包含到 C++ 程序中?

c - 使用不同的宏多次包含一个文件