3

次のような 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 ファイルを含めたくありません。これを処理する適切な方法は何ですか?私はスタートアップのアホなインターンなので、私の無知を許してください。よろしくお願いします。

4

1 に答える 1

2

<jsp:invoke />タグの代わりにタグを使用すると、次のことが簡単にできます<include />。これは jsp 2.0 の新機能で、あるページから別のページにいくつかのフラグメントを移動できるため、テンプレートの作成作業が非常に簡単になります。ここでチュートリアルを確認できます。

これが問題を解決する方法です。タグフォルダーを作成し、これを入れます。

テンプレート.タグ

<%@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>
于 2013-03-24T18:23:33.380 に答える