2012-04-16 14 views
1

私はヘッダとフッタのために< c:import url = "... jsp">を使って単純な.jspファイルを持っています。それは素晴らしい作品ヘッダの JSTL/ELフッターを.jspに含めるには?

header.jsp内部で行われているいくつかの$ {...} EL置換があることを私 C:輸入と、ユーザーがページすべてがうまく罰金とでリロードするたびに。

フッタには私には分からないものがあります。footer.jspの中にいくつかのJSTLを入れようとしましたが、動作しません。

JSTLを評価する代わりに、私のfooter.jsp内のタグがブラウザに提供されます。例えば

私はChromeからページのソースコードを表示するために頼めば、私は以下を参照してください。インポート:

<div> 
    <c:if test="false"> 
     ... 
    </c:if> 
</div> 

header.jspとfooter.jspは両方Cを使用してインポートされます。 EL置換はどのように機能しますが、JSTLタグはどのように機能しますか?

私が代わりに「輸入」の「含める」する必要がある場合は、私は2つの質問を持っている:

  • 私は、JSTLを使用し、その方法ならば、「含める」ことができますか?

  • c:importのJSTLタグが機能しないのに、EL置換がどのように起こっていますか?

答えて

1

あなたは確かに<%@ include file="footer.jsp" %>を使用する必要があります - そして、すべてのELが解決されます(同じヘッダーのために行く)

<c:import />は、ターゲット・リソースを評価し、そのページでそれを含んでいます。フッタがEL式解析を正しく宣言していない場合(古いバージョンのJSPではデフォルトではオンになっていません)、含まれる結果に<c:というタグが含まれます。

+0

私は試してみましたが、そのインクルードディレクティブ(?)は実際に動作します。ただし、フッターがEL式の解析を正しく宣言していない場合、含まれる結果に *が含まれている可能性があります。これは別の質問の対象になるかもしれませんが、いつ*%@インクルード*構造を使うべきか、* c:import *を使用するのはいつですか?または:c:importは何をしますか?*%include *はしません!私はこれについて真剣に混乱していると思います... –

+0

c:importは、jspだけでなく、あらゆるリソースをインポートします。外部ページをインポートすることもできます。そしてそれは動的にそれを行います。 %@ includeには、jspがコンパイルされる前に静的にコンテンツが含まれているため、すべてのontop - よりパフォーマンスが高い – Bozho

関連する問題