0

メインの JSP ページに別の JSP ページ (例: ヘッダー ページ) を追加したい。本当のjspページ名を書くのは避けたいです。だから、別の名前を書いて、「トップバナー」としましょう。ここにコードがあります

<%@include file="topbanner"%>

実際のページは topheader.jsp で、プロジェクト
->web->header->topheader.jspにあります。

私の配備記述子 (web.xml) では、web.xml の topheader.jsp をマップしました。

    <servlet>
        <servlet-name>pagetop</servlet-name>
        <jsp-file>/header/topheader.jsp</jsp-file>
    </servlet>
<servlet-mapping>
        <servlet-name>pagetop</servlet-name>
        <url-pattern>/topbanner</url-pattern>
    </servlet-mapping>

しかし、これはうまくいきません。それは例外をスローします

org.apache.jasper.JasperException: /index.jsp (line: 11, column: 1) File "/topbanner" not found  

問題がどこにあり、サンプルコードでどのように修正できるかを教えてください。

編集マップされた jsp s
に使用できませんか?<%@include file=" ..."%>

4

2 に答える 2

1

静的<%@ ... > JSP は、指定されたパス内にテキストを含めます。上または下に別の JSP を含めたい場合は、 を使用する必要がありますprelude and code

サンプルは次のとおりです。

<jsp-config>
  <jsp-property-group>
     <url-pattern>*.jsp</url-pattern>
     <include-prelude>/header.jsp</include-prelude>
     <include-coda>/footer.jsp</include-coda>
  </jsp-property-group>
</jsp-config>
  • Preludeが冒頭に追加されます。
  • Codaが末尾に追加されます。

ここにいくつかのチュートリアルがあります:

于 2012-06-08T08:02:14.190 に答える
0

次のようなものを試してください:

  1. web.xml に「tapbanner」をマッピングしてサーブレットを作成する
  2. サーブレットでdoGet()メソッドをオーバーライドするTopbanner
  3. Forwardまたは使用中Include_topbanner.jspdoGet()RequestDispatcher
于 2012-06-08T07:07:42.253 に答える