2017-12-02 17 views
1

メニュー、ヘッダー、フッターなどの共通部分を共有する異なるページのWebサイトを開発しています。別のjspページをajaxなしで1つに結合する方法

だから私がしたいのは、これらの共通コンポーネントを一度書くだけで、それらを1つのページにまとめることです。

これまでのところ私はこれを行う最良の方法ではないことを確信しています:ヘッダー、メニュー、フッターなしでjspファイルを生成しています。それらのコンポーネントをホストするために)、ページがブラウザによってロードされると、私は各単一の共有コンポーネントをajaxで取得します。しかし、これを行うことは、ブラウザが1つのページを読み込むために複数のHTTPリクエストを実行するように強制するため、最適化されていません。

そうする最良の方法はありますか?異なるJSPページを1つに結合する方法(サーバー側では、すべてのajax呼び出しを避ける)のように。私はあなた/私たち、

自分自身が明確な私が本当に行われていることを期待...それらを構築するために私を助けて、すべてのページで使用されるスケルトンのいくつかの種類について

を考えているあなたの時間をありがとうございましたこれまで最高のコミュニティです!

答えて

2

メインのjspファイルを別々のjspファイルに入れて別のjspファイルに分けて、メインのjspファイルにそれらをそのまま組み込むことができます(これは一例に過ぎませんが、ページを分割する)。

main.jsp

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

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

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

そして、あなたはもはやAjax呼び出し必要はありません。

JSPファイルのそれぞれにおいて
1

、このようなヘッダー、メニューとフッターが含まれ、

<%@ include file="header.jsp" %> 
<%@ include file="menu.jsp" %> 
<!-- 
Your JSP page content 
--> 
<%@ include file="footer.jsp" %> 

この方法であなたは、ヘッダー/メニュー/フッターに何かを変更したい場合は、それが一つの場所になります。

0

私はまた、このソリューションが見つかりました:

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

をしかし、これら二つの解決策は、異なる動作を持っているので、あなたは注意を払わなければなりません。

下記のもの

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

それをコピーして貼り付けられたかのように、タグを含むJSPに指定されたファイルの内容を注入します。これは、インクルードされたファイルの内容が解析される前に実行されます。

は、第1挙動は異なる

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

指定されたページの描画処理の結果は、タグの時点で含有するJSPに注入されます。これは、本質的に要求されたページを別のレンダリング要求として同じコンテナに提出し、ファイルの内容ではなく結果を取得することによって行われます。

read thisについて詳しく知りたければ、実際にはこれらの情報がどこから来たのか

関連する問題