0

Webアプリ内のすべてのJSPのテンプレートを作成して、物事を非常にシンプルに保ちました。

<%@ include file="header.jsp" %>

<!-- Put unique content here -->

<%@ include file="footer.jsp" %>

ナビゲーションメニューが大きくなるにつれて、header.jspから独自のファイルに移動することにしました。メニューのコードをmenu.jspに入れました。includeが私のheader.jsp内でどのように見えるかを次に示します。

<html>
<head>
    <title>My JSP</title>
</head>

    <body>

        <jsp:include page = "menu.jsp"/>

 ......

ただし、me​​nu.jspは、次の行も追加しない限り機能しません。

<%@ taglib prefix = "c" uri = "http://java.sun.com/jsp/jstl/core"%>

それはすでに私のheader.jspにあります。そこに置けばいいのですが。ただし、代わりにこのsytaxを使用しようとすると、次のようになります。

<%@ include file="menu.jsp" %>

WebLogic11gから次のようなエラーメッセージが表示されます

<%@ include file="header.jsp" %> is self refrencing

menu.jspにJSTLを含めることなく、header.jspにmenu.jspを含めるにはどうすればよいですか?

4

2 に答える 2

3

動的に組み込まれる( ) JSP ページ<jsp:include />は、個別にコンパイルされるため、taglib を使用する場合は taglib 宣言が必要です。

静的に含まれる JSP ページには、サーブレット自体にコンパイルされるため、同じ制限はありません。

taglib が使用されている JSP で taglib を宣言することの重要な点は何ですか? これにより、機能のスタンドアロンの「チャンク」になり、どこにでも動的に含めることができ、自己文書化され、含まれているページを気にする必要がなくなります。これが、機能を分割することの目標です。

于 2012-06-08T18:16:49.430 に答える
0

ページのソースコードを含むディレクティブの代わりに、コードではなくページの動的応答のみを含む<%@ include file="page" %>標準アクション<jsp:include page="page"/>または JSTLを試してください。<c:import url="page"/>

于 2012-06-08T18:19:19.113 に答える