2012-02-29 8 views
1

Java EEを使用している小さなWebサイトを作成していますが、問題が発生しています。実際には、各ページに表示されるウェブサイトの要素を持っていたいと思うメインレイアウトを作りたいと思います。そのような何か:私は、特定のページに行くときJava EEでJSPファイルを動的にインクルードする方法

<html> 
    <head> 
     <title>Just a website...</title 
    </head> 
    <body> 
     <div id="page"> 
      <div id="header"></div> 
      <div id="content"> 
       <!-- Include content here --> 
      </div> 
      <div id="footer"> 
     </div> 
    </body> 
</html> 

その後、私は、そのページのコンテンツは、「コンテンツ」ブロックに含めることだろうと思います。

問題は、私がそれを行う最善の方法が何か分かりません。メインサーブレットを作成し、他のサーブレットからのすべてのリクエストをそのサーブレットに転送してから、そのページを処理する必要がありますか?

私はインターネットでそのようなtutorielまたは何かを見つけることがうれしいですが、私はしません。

+2

も参照してください。 http://stackoverflow.com/questions/4792862/how-to-include-another-xhtml-in-xhtml-using-jsf-2-0-faceletsも参照してください。古いJSPについては、この関連の質問も参照してください:http: //stackoverflow.com/questions/1296235/jsp-tricks-to-make-templating-easier – BalusC

答えて

3

SiteMeshまたはTilesなどのものを使用するか、単にperfectly serviceable for simplistic templatingというjspインクルードメカニズムを使用できます。

+0

私の問題は、サーブレットでそれをどう処理するのか分かりません。実際には、1ページに1つのサーブレットがあり、正しいページを取得するためにそのコード行を使用します。 'req.getRequestDispatcher("/jsp/account/addAccount.jsp ")。forward(req、resp);'私のすべてのサーブレットからメインレイアウトにリクエストを転送する必要がありますか? –

+0

@SylvainOllivierいいえ。 2番目の例を見ましたか? –

1

<jsp:include>これは実行時にページを含めることです(要求に応じて実行されます)。

は、それはJSPの後継者はFaceletsで簡単です

+0

私はメインレイアウトに ''を入れています...しかし、私のメインレイアウトは、どのページに含める必要があるのか​​をどのように知ることができますか? –

+0

あなたの簡単な例では、どのjspページを含めるためにjstl条件を使用することもできますし、目的のページに応じてjspをモジュール化することもできるので、ヘッダーとフッターを別々のjspにして特定のコンテンツページに含めることもできます。再度それはあなたのコンテンツ/ニーズに依存しますが、私はそれが単純なケースには完璧だと信じています。 – MalsR

関連する問題